Soru Xmlhttp ile CSV indirip sayfaya alma

Katılım
20 Haziran 2015
Mesajlar
36
Excel Vers. ve Dili
office 2010 türkçe
Altın Üyelik Bitiş Tarihi
21/08/2022
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
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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:
Katılım
20 Haziran 2015
Mesajlar
36
Excel Vers. ve Dili
office 2010 türkçe
Altın Üyelik Bitiş Tarihi
21/08/2022
Ç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
 
Üst