Makro ile web sayfası açmak

Katılım
24 Mart 2008
Mesajlar
468
Excel Vers. ve Dili
2007TR - 2010TR
Form üzerinden link için; by kod bankası


Forma Label ekleyin ve click olayına FollowHyperlink metodunu içeren aşağıdaki kodu yazın.
Private Sub Label1_Click()
Link = "http://adresi yazın"
On Error GoTo NoCanDo
ActiveWorkbook.FollowHyperlink Address:=Link, NewWindow:=True
Unload Me
Exit Sub
NoCanDo:
MsgBox Link & " açılamıyor."
End Sub
'mailto hiperlinkini kullanmak için ise aşağıdaki gibi bir ifade yazın.
'Link = "mailto:isim@adres.com"

label click i kendinize göre değiştirin...
 
Katılım
26 Ocak 2006
Mesajlar
754
Excel Vers. ve Dili
Office 365 İngilizce 64 Bit
Altın Üyelik Bitiş Tarihi
31-01-2025
Çok teşekkürler üstad...
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Alternatif olarak;

Kod:
Const URL3 As String = "[URL]http://www.google.com.tr[/URL]"
Sub WebPageOpen()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = False 'True olursa web sayfası görüntülenir.
        .Navigate URL3    'Web adresi açılıyor.
            Do Until .ReadyState = 4: DoEvents: Loop    'Yükleme tamamlayıncaya
            Do While .Busy: DoEvents: Loop              'kadar bekleme
            '.Quit 'Kapat
     End With
Set IE = Nothing
End Sub
 
Katılım
6 Nisan 2005
Mesajlar
71
peki elimizde 20 site var ve 30'ar saniye ara ile açmak istiyoruz diyelim. ne yapabiliriz?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Amacınız siteleri peş peşe açmakmı? yani 30 sn mutlaka olmasımı gerekir.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi bir mantıkla siteleri peşpeşe açabilirsiniz.

Kod:
Sub webac()
web = Array("[URL="http://www.excel.web.tr"]www.excel.web.tr[/URL]", "[URL="http://www.google.com.tr"]www.google.com.tr[/URL]")
For a = 0 To UBound(web)
Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = True
        .Navigate web(a)
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
     End With
Next
Set IE = Nothing
End Sub
 
Katılım
6 Nisan 2005
Mesajlar
71
Levent Bey öncelikle yardımınız için teşekkür ederim.

Peki zaman aralığı konusunda ne yapabilirim? Yani yukarıdaki kodlarla nasıl bir birleşim sağlanabilir. Örnek olarak
her siteden sonra 30sn beklesin istiyorum veya 50sn

ayrıca her site için farklı bir explorer açarsa sistem kilitlenebilir. Tüm sorguları aynı pencereye göndermem mümkün müdür?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin. Kırmızı renki sayı saniye olarak bekleme süresidir.

Kod:
Sub webac()
web = Array("www.excel.web.tr", "www.google.com.tr")
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
For a = 0 To UBound(web)
    With IE
        .Navigate web(a)
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
     End With
If a < UBound(web) Then Application.Wait Now + TimeValue("00:00:[B][COLOR=red]30[/COLOR][/B]")
Next
Set IE = Nothing
End Sub
 
Katılım
6 Nisan 2005
Mesajlar
71
öncelikle yardımınız için çok teşekkür ederim.

fakat bu makroda örneğin 30 site adresi girince satır alta kayıyor ve hata veriyor.
ayrıca süreyi 300sn yapamadım o da hata veriyor.

ilgilenirseniz çok sevinirim.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,060
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
300 sn için ilgili satırı aşağıdaki ile değiştirebilirsiniz.

Kod:
Application.Wait Now + TimeValue("00:05:00")
Web site isimleri elbette sayfa üzerinden alınabilir. Bunun için döngüyü aşağıdaki gibi kurabilirsiniz. İsimlerin A sütununda olduğu kabul edilmiştir.

Kod:
Sub webac()
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
For a = 1 To [a65536].end(3).row
    With IE
        .Navigate cells(a,"a")
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
     End With
If a < [a65536].end(3).row Then Application.Wait Now + TimeValue("00:05:00")
Next
Set IE = Nothing
End Sub
 
Üst