• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru Xmlhttp ile CSV indirip sayfaya alma

Katılım
20 Haziran 2015
Mesajlar
36
Excel Vers. ve Dili
office 2010 türkçe
Merhaba arkadaşlar

MSXML2.XMLHTTP kullanarak webden bir CSV dosyası indirip, indirilen veriyi sütunlara ayrılmış olarak sayfaya çeken örnek bir VBA kodu paylaşabilirmisiniz

Teşekkürler
 
O zaman ilk önce CSV dosyasını lokal bilgisayara indirip, daha sonra Excel'e aktarmak gerekir.

Onun yerine direkt olarak aşağıdaki kodla tüm işi yapabilirsiniz;

C++:
Sub Test()
    Dim strURL As String, strParameter As String
  
    Columns("A:B") = ""
    strParameter = Format(Date - 1, "yyyymmdd")
    strURL = "https://marketdata.theocc.com/stock-loan-eligible-securities?fileName=" & strParameter
  
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & strURL, Destination:=Range("A1"))
        .BackgroundQuery = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
    End With
  
    If ActiveWorkbook.Connections.Count > 0 Then
         ActiveWorkbook.Connections(ActiveWorkbook.Connections.Count).Delete
    End If
  
    Range("A1").CurrentRegion.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
                Semicolon:=False, Comma:=True, Space:=False, other:=True, OtherChar:=",", FieldInfo:=Array(1, 1)
  
    Columns("A:B").AutoFit
End Sub


Başka bir örnek;

C#:
Sub Test2()
    Dim strURL As String, strParameter As String
    
    strURL = "https://sample-videos.com/csv/Sample-Spreadsheet-100-rows.csv"
    
    With ActiveSheet.QueryTables.Add(Connection:="URL;" & strURL, Destination:=Range("A1"))
        .BackgroundQuery = True
        .Refresh BackgroundQuery:=False
        .SaveData = True
    End With
    
    If ActiveWorkbook.Connections.Count > 0 Then
         ActiveWorkbook.Connections(ActiveWorkbook.Connections.Count).Delete
    End If
    
    Range("A1").CurrentRegion.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
                TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
                Semicolon:=False, Comma:=True, Space:=False, other:=True, OtherChar:=","
    
    Columns("A:J").AutoFit
End Sub


.
 
Son düzenleme:
Çok teşekkürler hocam elinize sağlık
Açıklamada indirip indirilen veriyi işleme olarak yazdım ama siz benim yapmak istediğimi anlamışsınız, direkt olarak veriyi sayfaya alıyor.

Aynı kodu xml feed için denedim,
Xml adı A1'de, xml başlıkları 2. Satırda çıkıyor veriler sorunsuz geliyor.
Veriyi aldıktan sonra 1. Satır silinebilir fakat bu işlemi baştan xml adını almadan 1. Satıra başlıkları nasıl alabiliriz
Saygılar
 
Geri
Üst