windows 10 64 bit excel 2016 64 bit ve 32 bit'te denendi.
işyeri sorunu nedeni ile imacros eklentileri dahil mouse kalavye otomasyon programlarını kullanam durumumuz yok.
sadece excel üzerinden yapmak zorunda kalacağım.

Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.Navigate URL
End With
FnWait (10)

fnwait ile bekletirsem internet hızına bağlı oalrak hiç bir sorun olmuyor. ancak malum süreler boşyere zaman kaybına neden oluyor. ve sürekli stabil çalışmıyor.
sayfa yüklenmesini bekleme ile ilgili;

Do Until IE.ReadyState = 4: DoEvents: Loop
Do While IE.Busy: DoEvents: Loop

ve versiyonları <> >4 gibi hiç bir kod ilgili sayfayı istediğim hızda bekletip devam etmiyor. hatta hiç işe yaramıyor direk geçiyor ve sonrakim satırda yükleme bitmediği için hata verip vba duruyor.

ayrıca yerli yabancı birçok sitede araştırdım ama ilginç bir durum daha var. örnek kodu vba dan çalıştırınca hızlı şekilde gidiyor açılıyor çalışıyor gibi. ancak diğer makroların birisine tetiklettiğimde aynı çalışan vba kod başlayıp web sitesi açılınca
Do Until IE.ReadyState = 4: DoEvents: Loop
Do While IE.Busy: DoEvents: Loop
döngüsü satırınca ikinci üçüncü ie sayfaları açıyor. hatta hata verince vba hata mesajına son dediğim de de yeniden başlatıyor.
3 gündür uğraşıyorum. mecbur kaldım buradan sormaya.
excel 32 bit de denedim. gerekli referanslarda yüklü.





-- num readyrstate falan denedim ama hata aldım çalıştıramadım.
-- Do Until Not .Busy And .readyState = READYSTATE_COMPLETE
-- ' Wait for the page to load.
Do While IE.Busy Or IE.ReadyState <> 4
DoEvents
Loop
-- webbrowser1. load =true

gibi birçok şey denedim.

Enum READYSTATE
READYSTATE_UNINITIALIZED = 0
READYSTATE_LOADING = 1
READYSTATE_LOADED = 2
READYSTATE_INTERACTIVE = 3
READYSTATE_COMPLETE = 4
End Enum

bunu çalıştıramadım. toplamda 2 satır kod aslında başka bir sayfa yada sayfalar da açsa işini görüyor kod. ilgili değerleri atıyor çıkıyor fnwait kullanırsam ama açılan diğer pencereleri kapatınca vba hata veriyor ve/veya tekrar bir sayfa açıyor falan.

Kod:
'-------------------------------------------------------------------------------
Function FnWait(intTime)
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + intTime
    waitTime = TimeSerial(newHour, newMinute, newSecond)
    Application.Wait waitTime
End Function
'--------------------------------------------------------------------------------

Sub YTBSCODE()
  Dim URL As String
  Dim HTML_Body As Object
  Dim IE As Object
  Dim objCollection As Object
  Dim robjCollection As Object
  Dim Satir, puant
  Dim Tarih, ResimID
 
  'sayfa butonları
  Ekle = "veriGirisForm:dtVeriGiris:j_idt199"
  Bul = "veriGirisForm:j_idt164"
  Yükle = "veriGirisForm:j_idt171"
  Resim = "j_idt106_start"
  '----------------

  URL = "https://ytbs.teias.gov.tr/ytbs/frm_login.jsf"
  Tarih = Application.Worksheets("ytbs").Range("a1").Value

  Set IE = CreateObject("InternetExplorer.Application")
    With IE
    .Visible = True
    .Navigate URL
    End With
    FnWait (10)
'#######################ŞİFRE GİRİŞİ#######################
    With IE.Document
      .all("loginForm:username").Value = "kullanıcıadı"
      .all("loginForm:password").Value = "şifre"
      .all("loginForm:btnLogin").Click
    End With
    FnWait (5)
'################ VERİ GİRİŞ SAYFA BUTON ################
    IE.Document.GetElementByID("form:form2:hm1").Click
    FnWait (1)
    Do Until IE.ReadyState = 4: DoEvents: Loop
    Do While IE.Busy: DoEvents: Loop
'##################### PUANT SAATLERİ #####################
    puant = Mid(IE.Document.GetElementByID("veriGirisForm:j_idt154").innertext, 39, 5)
    Application.Worksheets("ytbs").Range("D32").Value = puant
    FnWait (5)
'################## TARİH GİRİŞİ ########################
    IE.Document.all("veriGirisForm:tarih_input").Value = Tarih
    IE.Document.all(Bul).Click
    FnWait (1)
    Do Until IE.ReadyState = 4: DoEvents: Loop
    Do While IE.Busy: DoEvents: Loop
'######################## BUL BUTON #####################

'####################SAAT GİRİŞİ###########################
    Application.Worksheets("ytbs").Range("a2").Value = IE.Document.GetElementByID("veriGirisForm:dtVeriGiris:selectedZaman_label").innertext
    FnWait (3)
    macross = Application.Worksheets("ytbs").Range("a6").Value
    FnWait (3)
    Application.Run macross
    Satir = Application.Worksheets("ytbs").Range("a3").Value
    FnWait (3)
    IE.Document.GetElementByID("veriGirisForm:kopyaAlani").Value = FormatNumber(Application.Worksheets("ytbs").Range("D" & Satir).Value, 0) _
    + " " + FormatNumber(Application.Worksheets("ytbs").Range("E" & Satir).Value, 0) + " " + FormatNumber(Application.Worksheets("ytbs").Range("F" & Satir).Value, 0) _
    + " " + FormatNumber(Application.Worksheets("ytbs").Range("G" & Satir).Value, 0) + " " + FormatNumber(Application.Worksheets("ytbs").Range("H" & Satir).Value, 0) _
    + " " + FormatNumber(Application.Worksheets("ytbs").Range("I" & Satir).Value, 0) + " " + FormatNumber(Application.Worksheets("ytbs").Range("J" & Satir).Value, 0) _
    + " " + FormatNumber(Application.Worksheets("ytbs").Range("K" & Satir).Value, 0) + " " + FormatNumber(Application.Worksheets("ytbs").Range("L" & Satir).Value, 0) _
    + " " + FormatNumber(Application.Worksheets("ytbs").Range("M" & Satir).Value, 0) + " " + FormatNumber(Application.Worksheets("ytbs").Range("N" & Satir).Value, 0)
Geç:
'#################### YUKLE BUTON #####################
    IE.Document.GetElementByID(Yükle).Click
    FnWait (1)
    Do Until IE.ReadyState = 4: DoEvents: Loop
    Do While IE.Busy: DoEvents: Loop
'######## EKLE BUTON #######
    IE.Document.GetElementByID(Ekle).Click
    FnWait (1)
    Do Until IE.ReadyState = 4: DoEvents: Loop
    Do While IE.Busy: DoEvents: Loop
    IE.Quit
    Set IE = Nothing
    Set HTML_Body = Nothing
End Sub