• DİKKAT

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

Makro ile web sayfası açmak

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...
 
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
 
peki elimizde 20 site var ve 30'ar saniye ara ile açmak istiyoruz diyelim. ne yapabiliriz?
 
Amacınız siteleri peş peşe açmakmı? yani 30 sn mutlaka olmasımı gerekir.
 
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
 
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?
 
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
 
ö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.
 
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
 
Geri
Üst