Makro istenilen sayfa da çalışmalı

mrtank50

Altın Üye
Katılım
10 Haziran 2018
Mesajlar
25
Excel Vers. ve Dili
Excel 2021 LTSC Professional Plus 64 bit
Altın Üyelik Bitiş Tarihi
10-03-2027
Arkadaşlar merhaba çözemediğim bir sorun var nasıl çözebilirim.
Kod hangi sayfadaysam o sayfaya verileri alıyor.
Ben sadece sayfa 3 te otomatik 5 dakikada bir yenilenmesini istiyorum.
Ben sayfa 2'deyken sayfa 3 otomatik 5 dakikada bir yenilenmelidir.

Mümkünatı nasıldır acaba.
Activesheet komutu sadece o sayfada aktifsem çalışıyor.Sayfa 2 deyken malasef çalıştıramadım.

Kodlar aşağıdadır:
Kod:
Sub aralıklı_calıstır()
Application.OnTime Now + TimeValue("00:05:00"), "mynett"
End Sub

Sub mynett()


MsgBox _
"Bugün " & Format(Now, "dd.mm.yyyy") & _
vbCrLf & "Saat " & Format(Now, "hh:mm") & _
vbCrLf & "Günlerden " & b & _
" Veriler aktarıldı"


Dim xmlsayfa As MSXML2.XMLHTTP60
Dim htmldoc As MSHTML.HTMLDocument
Dim table As IHTMLElementCollection
Dim satir  As IHTMLElement
Dim hucre  As IHTMLElement



Range("A2:F" & Rows.Count).ClearContents

Set xmlsayfa = New MSXML2.XMLHTTP60
Set htmldoc = New MSHTML.HTMLDocument

xmlsayfa.Open "GET", "https://finans.mynet.com/borsa/hisseler/", False
xmlsayfa.send

If xmlsayfa.Status <> 200 Then Exit Sub

htmldoc.body.innerHTML = xmlsayfa.responseText

Set table = htmldoc.getElementsByTagName("tbody")

x = 2

For Each satir In table.Item(0).Children
    s = 1
        For Each hucre In satir.Children
          
        If IsNumeric(hucre.innerText) Then
        Cells(x, s) = ("'" & hucre.innerText)
        Cells(x, s) = Cells(x, s) * 1
        Else
        Cells(x, s) = hucre.innerText
        End If
      
        s = s + 1
        Next hucre
x = x + 1
Next satir

Set xmlsayfa = Nothing
Set htmldoc = Nothing
Set table = Nothing
Set satir = Nothing
Set hucre = Nothing

Call aralıklı_calıstır

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod içinde geçen Cells ve Range ifadelerinin önüne aşağıdaki gibi sayfa adını eklerseniz sonuç alabilirsiniz.

Örnek;
Range("A2:F" & Rows.Count).ClearContents

Olması gereken;

Sheets("Sayfa3").Range("A2:F" & Rows.Count).ClearContents
 

mrtank50

Altın Üye
Katılım
10 Haziran 2018
Mesajlar
25
Excel Vers. ve Dili
Excel 2021 LTSC Professional Plus 64 bit
Altın Üyelik Bitiş Tarihi
10-03-2027
Kod içinde geçen Cells ve Range ifadelerinin önüne aşağıdaki gibi sayfa adını eklerseniz sonuç alabilirsiniz.

Örnek;
Range("A2:F" & Rows.Count).ClearContents

Olması gereken;

Sheets("Sayfa3").Range("A2:F" & Rows.Count).ClearContents
Hocam çok teşekkür ederim sağolun işe yaradı.
 
Üst