• DİKKAT

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

On error döngüsü kurma

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Kolay gelsin,

Kod:
yeniden1:
       Application.Wait (Now + TimeValue("0:00:03"))

       On Error GoTo yeniden1

       ...kodlar

Yukarıdaki kodda ...kodlar yazan bölüm bazı durumlarda debug hatasına düşüyor. Debuga basıp tekrar kaldığı yerden çalıştırdığımda hatasız işlem devam ediyor.
Hata vermesinin sebebei bekleme süresinin 3 saniye yetmediği durumlarda oluşuyor.Saniyeyi uzatmayacağım. Alternatif olarak yetmediği durumlarda hata olduğunda yeniden1 yazan kodu ekledim fakat başarısız oldum. Alternatif öneriniz var mıdır?
 
Bekleme süresini uzatın. Anlaşılan istenilen veri 3 sn de yüklenmiyor.
 
Demiştim ama saniyeyi uzatmayacağım diye :)
 
Yüklenen veri değilde internet sayfası %90 süre yetiyor ama arada debuga düşüyor. Hataya düşmesin fazla da beklemesin.Döngüsel oradaki kodlar tekrar çalışsın diye planlıyorum.
int sayfası yüklemesi için
While .Busy Or .readyState <> 4: DoEvents: Wend
Kodları var ama bu da işimi görmüyor.
 
kodların tamamını ekliyebilirmisiniz.
 
Kodlarınızı ya da siteyi paylaşırsanız ie yöntemi ya da xmlhtml yöntemi ile çözüm olabilir belki.
 
Kodlarım bu şekilde.
Siteye kullanıcı adı parola ile giriş yapıyor.
Sonra dropdown listeden 100adet olanı seviyor.
İndir butonuna basıp çıkan mesaja ok butonuna bastırıyorum.

Kod:
Sub giriş2()
   
    Dim IE As Object
    Dim address As String
'On Error GoTo ErrMsg
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Visible = True
        .Navigate "https://*****"
       Application.Wait (Now + TimeValue("0:00:03"))
        .document.getElementsByTagName("INPUT")(0).Value = "*****"
        .document.getElementsByTagName("INPUT")(1).Value = "*****"
        .document.getElementsByTagName("BUTTON")(0).Click
        While .Busy Or .readyState <> 4: DoEvents: Wend
               
        .Navigate "https://******"
      'On Error Resume Next
    While .Busy Or .readyState <> 4: DoEvents: Wend

Set elem = .document.getElementsByName("inboxList_length")(0)
        Set myOpt = elem.getElementsByTagName("option")(3)
        myOpt.Selected = True
        Set chng = .document.createEvent("HTMLEvents")
        chng.initEvent "change", True, False
        myOpt.dispatchEvent chng
       
          Application.Wait (Now + TimeValue("0:00:10"))
     While .Busy Or .readyState <> 4: DoEvents: Wend
"""""""""""""""""""""""
      Set elems = .document.getElementsByClassName("iCheck-helper")
yeniden:
For Each e In elems
a = a + 1
If a > 1 Then
     e.Click
End If
If e.Click = False Then GoTo yeniden
Next e

  Application.Wait (Now + TimeValue("0:00:05"))
For Each B In .document.getElementsByTagName("a")
    If B.innerText = "PDF İndir" Then B.Click
        Next
     
     .document.getElementsByTagName("BUTTON")("btnAlertModalOk").Click
    End With

'ErrMsg:

'MsgBox "Hata:" & Err.Number & " ( " & Err.Description & " )"
'On Error GoTo çık
'IE.Quit: giriş
'çık:
Set IE = Nothing
End Sub
 
7 nolu mesajınızdaki bu kod yarine
Kod:
Application.Wait (Now + TimeValue("0:00:03"))
bunu dene
Kod:
Do Until IE.ReadyState = 4: DoEvents: Loop
Do While IE.Busy: DoEvents: Loop
 
Denedim fakat sitenin yüklenmesi sanırım çok Zaman alıyor o yüzden burada takılıyor.
Yani sitede misal kullanıcı adı parola ekranı açılıyor fakat bu kod çalıştığında kodlar şifre girme kodlarına geçmiyor.
 
ie nin hangi sürümü yüklü internet explorer 11 yüklü olması lazım
 
Aynen onu da güncellemek için baya uğraştım:)
 
bu durumda web sayfası adresi olmadan bir şey söylemek zor
 
Kodlar ile ilgili F8 tuşunu adım adım ilerledim buraya kadar çok hızlı bir şekilde geldi.

Kod:
Sub giriş2()

Dim IE As Object
Dim address As String
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.Navigate "https://i-donusum.com.tr/portal/"
Do Until IE.ReadyState = 4: DoEvents: Loop
Do While IE.Busy: DoEvents: Loop

.document.getElementsByTagName("INPUT")(0).Value = "deneme"
.document.getElementsByTagName("INPUT")(1).Value = "123456"
.document.getElementsByTagName("BUTTON")(0).Click
While .Busy Or .ReadyState <> 4: DoEvents: Wend

devamını tabiki çalıştıramadım çünkü kullanıcı adı ve şifresi hatalı

işletim sistemi windows 8.1 64 bit ve ie explorer 11
 
Ben de denedim fakat parola ekanı gelmesine rağmen sayfanın tamamen yüklenmesini bekliyor.

Kodlar arasına koşullar ekleyerek kodu tekrar ettiremezmiyiz?
İşyerimdeki pcde denemiştim kendimce olumlu sonuç aldım gibi .
Her bir işlemi ayrı bir modüle yazdım. Koşul koydum gerekli şartlar sağlanmazsa kod bir daha çalışsın diye.
Sağlıklı olur mu bilmem ama bu konuyu da ona istinaden açmıştım.
 
Eklediğim dosyaları indir ve rar dan çıkart ekran görüntüsünü ekledim F8 de çok hızlı çalışıyor.
 
Siz en iyisi pdf dosyanın olduğu sayfanın kodlarını ya da sayfayı farklı kaydederek kendini buraya ekleyin. Pdf dosyasının arka kısımlarda linki varsa buton yerine direkt linkden dosya indirilir.
 
Siz en iyisi pdf dosyanın olduğu sayfanın kodlarını ya da sayfayı farklı kaydederek kendini buraya ekleyin. Pdf dosyasının arka kısımlarda linki varsa buton yerine direkt linkden dosya indirilir.
Ektetüm site içeriği mevcuttur
 

Ekli dosyalar

Geri
Üst