Açık İnternet Sayfalarından istenilen Sayfayı Aktif Etme

askm

Destek Ekibi
Destek Ekibi
Katılım
4 Haziran 2005
Mesajlar
2,745
Excel Vers. ve Dili
2010-2016
Kolay gelsin.
İnternet Explorer ile internetten veri çekerken bazı sitelerde tıklanılan buton sayfayı yeni sekmede açmakta. Açılan yeni sekmeden devam etmek istiyorum. Bunun içinde açık internet sayfalarının isimlerini kontrol edip o pencerede ya da sekme devam etmem gerekiyor. Bunun için nasıl bir kontrol yaparız.
 
Katılım
30 Kasım 2018
Mesajlar
91
Excel Vers. ve Dili
2016
Hocam bende aynı sorunu yaşıyorum,
Excel VBA kodu ile bir internet sayfasından veri almaktayım. Fakat bir sayfadayken aşağıdaki kodla bastığımda yeni sekmede sayfayı açmaktadır. Yeni sekme açınca da oradan verileri alamıyorum.

IE.Document.getElementById("ctl03_ctlKayitliDilekceler").Click

Click yaptığımda geçerli sekmede açmasını nasıl yapabilirim. Bu mümkün değilse de farklı sekmeye geçtiğinde oradan nasıl veri alabilirim.

Siz çözdüyseniz benimle paylaşabilir misiniz.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Deneyin
Kod:
Sub Ara()
On Error Resume Next
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://www.excel.web.tr/" ' 1 sayfa
 While IE.Busy
        DoEvents
    Wend
IE.navigate "https://www.excel.web.tr/threads/acik-internet-sayfalarindan-istenilen-sayfayi-aktif-etme.159630/", CLng(2048) '2. sayfa
With CreateObject("Shell.Application").Windows
Set IE = .Item(.count - 2)
End With
Application.Wait (Now + TimeValue("0:00:04"))

Set elementONE = IE.Document.getElementsByTagName("div")
    For i = 1 To elementONE.Length
        elementTWO = elementONE.Item(i).innerText
         If InStr(1, elementONE.Item(i + 1).innerText, "ctl03_ctlKayitliDilekceler", vbTextCompare) > 0 Then

            Range("A" & 1).Value = (elementONE.Item(i + 1).innerText)
     End If
      
    Next i
 
End Sub
 
Katılım
30 Kasım 2018
Mesajlar
91
Excel Vers. ve Dili
2016
Teşekkür ederim.
Ama ben "IE.Document.getElementById("ctl03_ctlKayitliDilekceler").Click" tuşuna bastığımda başka sekmede açtığı sayfadaki adres değişkenlik gösteriyor.
adres girmeden açılan yeni sekmeyi geçerli sekme yapmak mümkünmüdür.
ya da bu tuşa basınca yeni sekme açmasın geçerli sekmede o sayfayı açsın.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Ben bu kod ile size mantığını izah ettim.

Söyleki

Kod:
Sub Ara()
On Error Resume Next
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.Navigate "https://www.excel.web.tr/" ' 1 sayfa
 While IE.Busy
        DoEvents
    Wend
    
    'Sizin clik burda gerçekleşecek)

Application.Wait (Now + TimeValue("0:00:04")) ' Bekleyin

With CreateObject("Shell.Application").Windows
Set IE = .Item(.Count - 1)
End With
MsgBox (IE.LocationURL)

 
End Sub
Tekrar kontrol sizde(Set IE) olacak.
 
Katılım
30 Kasım 2018
Mesajlar
91
Excel Vers. ve Dili
2016
Üstad elin kolun ağrımasın çalıştı. Çok teşekkür ederim.
Bir sorum daha olacak. Kodu çalıştırmadan önce açık olan bütün explorer ları kapatıp işleme başlamak istiyorum. Kodun başına ne yazmam gerekiyor.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Kod:
Sub kapat()

'^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Dim I

With CreateObject("Shell.Application")

For I = .Windows.Count - 1 To 0 Step -1

If TypeName(.Windows(I).document) = "HTMLDocument" Then _

.Windows(I).Quit

Next

End With



End Sub
 
Katılım
30 Kasım 2018
Mesajlar
91
Excel Vers. ve Dili
2016
Tekrardan teşekkür ederim eline sağlık bu da çalıştı.
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Bu kod sadece not amaçlıdır.
Hedef yeni url aynı sayda açılmalı.
Kod:
Sub SayfayaGit()
     Dim IE As Object
     Set IE = CreateObject("InternetExplorer.Application")
     IE.Visible = True
     IE.Navigate "https://iconarchive.com/tag/ico-files"
     Application.Wait (Now + TimeValue("0:00:05")) ' Bekleyin
     IE.Navigate "https://www.englishtestsonline.com/present-continuous-tense/", , , , "_self"
End Sub
 
Katılım
20 Şubat 2012
Mesajlar
242
Excel Vers. ve Dili
office2007 Türkçe
Bu kod sadece not amaçlıdır.
Hedef istenilen tab seçme. Pekçok ietab arasından istenilen seçilebilir.
Kod:
Sub BelirliSekmeyiAktifEt7()
    Dim ieShell As Object
    Dim ieWindows As Object
    Dim targetURL As String
    Dim ieTab As Object
    Dim jsCode As String
    
    ' Hedef URL'yi belirtin
    targetURL = "https://www.excel.web.tr/threads/acik-internet-sayfalarindan-istenilen-sayfayi-aktif-etme.159630/"
    

    Set ieShell = CreateObject("Shell.Application")

    Set ieWindows = ieShell.Windows

    For Each ieTab In ieWindows
        If TypeName(ieTab.document) = "HTMLDocument" Then
            If InStr(1, ieTab.LocationURL, targetURL, vbTextCompare) > 0 Then
              
                jsCode = "var tabs = window.open('" & targetURL & "'); tabs.focus();"
                
                ieTab.document.parentWindow.execScript jsCode, "JavaScript"
                Exit For
            End If
        End If
    Next ieTab
End Sub
 
Katılım
30 Kasım 2018
Mesajlar
91
Excel Vers. ve Dili
2016
Çok teşekkürler hepsi işime yarayacak bilgiler. Eline koluna sağlık üstad
 
Üst