• DİKKAT

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

Soru Dizi takvimi bilgilerini çekme makrosu

ibere

Altın Üye
Katılım
31 Mart 2018
Mesajlar
129
Excel Vers. ve Dili
Office 365
Arkadaşlar https://www.tvmaze.com/calendar web sitesinden bilgileri excele aktarmak istiyorum. Boş vakti olup ilgili dizileri excele çekecek makroyu yazıp paylaşabilir misiniz acaba ? teşekkürler
 
C#:
Sub Test()
'   Haluk - 21/06/2022
'   sa4truss@gmail.com

    Dim HTTP As Object, HTML As Object, i As Integer, j As Integer, k As Integer, z As Integer
    Dim myURL As String
    
    Range("B1:AJ" & Rows.Count) = ""
    
    Set HTML = CreateObject("HTMLFILE")
    Set HTTP = CreateObject("MSXML2.XMLHTTP")
    
    myURL = "https://www.tvmaze.com/calendar"
    
    HTTP.Open "GET", myURL, False
    HTTP.send
    
    HTML.body.innerHTML = HTTP.responseText
    Set objCollection = HTML.getElementsByTagName("span")
    
    i = 0
    j = 1
    Do While i < objCollection.Length
        If objCollection(i).classname = "dayofmonth" Then
            Set objShows = objCollection(i).NextSibling
            j = j + 1
            k = 2
            
            Cells(1, j) = objCollection(i).innerText
            xData = Split(objShows.innerText, vbCrLf)
            
            For z = LBound(xData) To UBound(xData)
                Cells(k, j) = xData(z)
                k = k + 1
            Next
        End If
        i = i + 1
    Loop
    
    Set objShows = Nothing
    Set HTML = Nothing
    Set HTTP = Nothing
End Sub

.
 
C#:
Sub Test()
'   Haluk - 21/06/2022
'   sa4truss@gmail.com

    Dim HTTP As Object, HTML As Object, i As Integer, j As Integer, k As Integer, z As Integer
    Dim myURL As String
   
    Range("B1:AJ" & Rows.Count) = ""
   
    Set HTML = CreateObject("HTMLFILE")
    Set HTTP = CreateObject("MSXML2.XMLHTTP")
   
    myURL = "https://www.tvmaze.com/calendar"
   
    HTTP.Open "GET", myURL, False
    HTTP.send
   
    HTML.body.innerHTML = HTTP.responseText
    Set objCollection = HTML.getElementsByTagName("span")
   
    i = 0
    j = 1
    Do While i < objCollection.Length
        If objCollection(i).classname = "dayofmonth" Then
            Set objShows = objCollection(i).NextSibling
            j = j + 1
            k = 2
           
            Cells(1, j) = objCollection(i).innerText
            xData = Split(objShows.innerText, vbCrLf)
           
            For z = LBound(xData) To UBound(xData)
                Cells(k, j) = xData(z)
                k = k + 1
            Next
        End If
        i = i + 1
    Loop
   
    Set objShows = Nothing
    Set HTML = Nothing
    Set HTTP = Nothing
End Sub

.

237373

Referanslardan neyi aktive etmem gerekiyor acaba ?
 
Herhangibir referans eklemenize gerek yok.... kodu bir modül içine yerleştirip, çalıştırmanız yeterli. Eğer sizin kendi dosyanızda eksik bir referans varsa, onu kaldırıp kodu tekrar deneyin.


Test.gif

.
 
Referansları kontrol ettiniz mi? "Missing-Eksik" olarak işaretlenmiş referans olabilir sizde ....


Capture.PNG

.
 
Hayır.... sizdeki Office versiyonu olması gerekir, yani bir problem görünmüyor.

Sizde çalışmamasının nedeni ne olabilir, bilemedim....

.
 
Son düzenleme:
Son çare, bende çalışan dosyayı ekleyeyim .... Bir de böyle deneyin.


.
 

Ekli dosyalar

Merhaba Haluk bey,
bende de 365 var arkadaşımızın hatalarını ben de aldım. Dosyada da sonuç değişmedi.
 
Bence, benim 2010 versiyonu gibi daha iyi bir versiyon kullanmaniz iyi olur :)

.
 
Office365'deki sorun "Split" fonksiyonundan mı yoksa başka bir şeyden mi kaynaklanıyor, teşhis edebilmek için aşağıdaki basit kodu çalıştırırsanız anlayabiliriz.

C#:
Sub Test()
    MsgBox Split("Bu bir test metnidir")(2)
End Sub

.
 
Office365'deki sorun "Split" fonksiyonundan mı yoksa başka bir şeyden mi kaynaklanıyor, teşhis edebilmek için aşağıdaki basit kodu çalıştırırsanız anlayabiliriz.

C#:
Sub Test()
    MsgBox Split("Bu bir test metnidir")(2)
End Sub

.

237391

Bu kod çalıştı hocam
 
Hmmm..... o zaman sıkıntı daha derinlerde.

.
 
Peki, o zaman aşağıdaki kod hangi satırda ne hatası veriyor Office365'de?


C#:
Sub Test3()
'   Haluk - 21/06/2022
'   sa4truss@gmail.com

    Dim HTTP As Object, HTML As Object, i As Integer
    
    Range("B1:AJ" & Rows.Count) = ""
    
    Set HTML = CreateObject("HTMLFILE")
    Set HTTP = CreateObject("MSXML2.XMLHTTP")
    
    myURL = "https://www.tvmaze.com/calendar"
    
    HTTP.Open "GET", myURL, False
    HTTP.send
    
    HTML.body.innerHTML = HTTP.responseText
    Set objCollection = HTML.getElementsByTagName("span")
    
    i = 0
    Do While i < objCollection.Length
        If objCollection(i).ClassName = "dayofmonth" Then
            Set objShows = objCollection(i)
            MsgBox objShows.innerText
            MsgBox objShows.NextSibling.innerText
        End If
        i = i + 1
    Loop
    
    Set objShows = Nothing
    Set HTML = Nothing
    Set HTTP = Nothing
End Sub

.
 
Peki, o zaman aşağıdaki kod hangi satırda ne hatası veriyor Office365'de?


C#:
Sub Test3()
'   Haluk - 21/06/2022
'   sa4truss@gmail.com

    Dim HTTP As Object, HTML As Object, i As Integer
   
    Range("B1:AJ" & Rows.Count) = ""
   
    Set HTML = CreateObject("HTMLFILE")
    Set HTTP = CreateObject("MSXML2.XMLHTTP")
   
    myURL = "https://www.tvmaze.com/calendar"
   
    HTTP.Open "GET", myURL, False
    HTTP.send
   
    HTML.body.innerHTML = HTTP.responseText
    Set objCollection = HTML.getElementsByTagName("span")
   
    i = 0
    Do While i < objCollection.Length
        If objCollection(i).ClassName = "dayofmonth" Then
            Set objShows = objCollection(i)
            MsgBox objShows.innerText
            MsgBox objShows.NextSibling.innerText
        End If
        i = i + 1
    Loop
   
    Set objShows = Nothing
    Set HTML = Nothing
    Set HTTP = Nothing
End Sub

.

237392

Sarı kısımda hocam
 
Geri
Üst