• DİKKAT

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

Excel Kur Makro hatası

Katılım
21 Kasım 2012
Mesajlar
46
Excel Vers. ve Dili
Excel 2013
İngilizce Dil
Merhaba Arkadaslar,

Bilgisayar degisikiginden sonra ( Windows 10 enterprise ) geçtik, aşağıdaki daha once kullandığım makro hata vermeye basladi yardımcı olabilirmisiniz? teşekkürler,
'*********************************************************************************
Private Sub CommandButton3_Click()
Onay = MsgBox(" onay "
If Onay = vbNo Then
Sheets("STOCK").Select
Exit Sub
End If
Tarih = CDate(Format(Now, "dd.mm.yyyy"))
Tarih1 = Tarih
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = 1
apiShowWindow ie.hWnd, 6
For m = 0 To 20
Tarih = Tarih1 - m
If CDate(Tarih) = CDate(Format(Now, "dd.mm.yyyy")) And "15:30:00" >= CDate(Format(Now, "hh:nn")) Then
GoTo Atla1
End If
If "01.01" = Format((Tarih), "dd/mm") And "23.04" = Format((Tarih), "dd/mm") And "01.05" = Format((Tarih), "dd/mm") And "19.05" = Format((Tarih), "dd/mm") _
And "30.08" = Format((Tarih), "dd/mm") And "28.10" = Format((Tarih), "dd/mm") And "29.10" = Format((Tarih), "dd/mm") Then
GoTo Atla1
End If
If "Cumartesi" = Format(Tarih, "dddd") Or "Pazar" = Format(Tarih, "dddd") Then
GoTo Atla1
End If

deg1 = Format(Val(Mid(Tarih, 1, 2)), "00")
deg2 = Format(Val(Mid(Tarih, 4, 2)), "00")
deg3 = Format(Val(Mid(Tarih, 7, 4)), "00")
URL1 = "http://www.tcmb.gov.tr/kurlar/" & deg3 & deg2 & "/" & deg1 & deg2 & deg3 & ".xml"
.Navigate URL1
Do Until ie.ReadyState = 4: DoEvents: Loop
Do While ie.Busy: DoEvents: Loop
Set html_tba = ie.Document.getElementsByTagName("Body")
adres = Trim(Replace(Replace(Replace(WorksheetFunction.Trim(html_tba(0).innertext), Chr(13), " "), Chr(10), " "), ",", ""))
If Mid(adres, 1, 12) = "Hata - Error" Then
GoTo Atla1
End If
If Mid(adres, 1, 4) = "Hata" Then
GoTo Atla1
End If
If Mid(adres, 2, 4) = "" Then
GoTo Atla1
End If
Cells(1, "ag") = ie.Document.getElementsByTagName("table").Item(0).Rows(4).Cells(3).innertext
Exit For
Atla1:
Next m
ie.Quit: Set ie = Nothing
End With
MsgBox "EURO KUR SORGULAMA İŞLEMİ TAMAMLANDI"
End Sub
 
Merhaba.
Eğer sadece Onay = MsgBox(" onay " burada hata veriyorsa, en sonda parantez kapatın. Kullanıcıdan Evt yada Hayır dönüşü istediğiniz için ayrıca bu da eklenmeli .Onay = MsgBox(" onay ", vbYesNo) olacak.

Eğer başka hata veren yer varsa neresi olduğunu ve hata mesajını da yazınız.
Ayrıca kod içerisinde api kullanılıyor. Eğer hata buradan kaynaklanıyorsa muhtemelen önceki bilgisayarınız ile yenisinin bit değerleri farklı olduğundandır.
Kullandığınız api yi de buraya eklerseniz daha iyi olur.
 
Merhaba.
Eğer sadece Onay = MsgBox(" onay " burada hata veriyorsa, en sonda parantez kapatın. Onay = MsgBox(" onay ") olacak.

Eğer başka hata veren yer varsa neresi olduğunu ve hata mesajını da yazınız.
Ayrıca kod içerisinde api kullanılıyor. Eğer hata buradan kaynaklanıyorsa muhtemelen önceki bilgisayarınız ile yenisinin bit değerleri farklı olduğundandır.
Kullandığınız api yi de buraya eklerseniz daha iyi olur.

Merhaba, msgbox eklerken ben silmiştim .
hata aşağıdaki yere geldiğinde veriyor,

Cells(1, "ag") = ie.Document.getElementsByTagName("table").Item(0).Rows(4).Cells(3).innertext
 
Muhtemelen 64 bit sorunu gibi gözüküyor
Bu kodu denermisiniz

Kod:
Private Sub CommandButton3_Click()
Onay = MsgBox(" onay ")
If Onay = vbNo Then
Sheets("STOCK").Select
Exit Sub
End If
Tarih = CDate(Format(Now, "dd.mm.yyyy"))
Tarih1 = Tarih
Set ie = CreateObject("InternetExplorer.Application")
With ie

ie.Visible = 1
ie.Width = 400
ie.Height = 300
ie.Left = 10
ie.Top = 0

For m = 0 To 20
Tarih = Tarih1 - m

If CDate(Tarih) = CDate(Format(Now, "dd.mm.yyyy")) And "15:30:00" >= CDate(Format(Now, "hh:nn")) Then
GoTo Atla1
End If
If "01.01" = Format((Tarih), "dd/mm") And "23.04" = Format((Tarih), "dd/mm") And "01.05" = Format((Tarih), "dd/mm") And "19.05" = Format((Tarih), "dd/mm") _
And "30.08" = Format((Tarih), "dd/mm") And "28.10" = Format((Tarih), "dd/mm") And "29.10" = Format((Tarih), "dd/mm") Then
GoTo Atla1
End If
If "Cumartesi" = Format(Tarih, "dddd") Or "Pazar" = Format(Tarih, "dddd") Then
GoTo Atla1
End If

deg1 = Format(Val(Mid(Tarih, 1, 2)), "00")
deg2 = Format(Val(Mid(Tarih, 4, 2)), "00")
deg3 = Format(Val(Mid(Tarih, 7, 4)), "00")
URL1 = "http://www.tcmb.gov.tr/kurlar/" & deg3 & deg2 & "/" & deg1 & deg2 & deg3 & ".xml"
.Navigate URL1
Do Until ie.ReadyState = 4: DoEvents: Loop
Do While ie.Busy: DoEvents: Loop
Set html_tba = ie.Document.getElementsByTagName("Body")
adres = Trim(Replace(Replace(Replace(WorksheetFunction.Trim(html_tba(0).innertext), Chr(13), " "), Chr(10), " "), ",", ""))
If Mid(adres, 1, 12) = "Hata - Error" Then
GoTo Atla1
End If
If Mid(adres, 1, 4) = "Hata" Then
GoTo Atla1
End If
If Mid(adres, 2, 4) = "" Then
GoTo Atla1
End If
Cells(1, "ag") = ie.Document.getElementsByTagName("table").Item(0).Rows(4).Cells(3).innertext
Exit For
Atla1:
Next m
ie.Quit: Set ie = Nothing
End With
MsgBox "EURO KUR SORGULAMA İŞLEMİ TAMAMLANDI"
End Sub
 
Muhtemelen 64 bit sorunu gibi gözüküyor
Bu kodu denermisiniz

Kod:
Private Sub CommandButton3_Click()
Onay = MsgBox(" onay ")
If Onay = vbNo Then
Sheets("STOCK").Select
Exit Sub
End If
Tarih = CDate(Format(Now, "dd.mm.yyyy"))
Tarih1 = Tarih
Set ie = CreateObject("InternetExplorer.Application")
With ie

ie.Visible = 1
ie.Width = 400
ie.Height = 300
ie.Left = 10
ie.Top = 0

For m = 0 To 20
Tarih = Tarih1 - m

If CDate(Tarih) = CDate(Format(Now, "dd.mm.yyyy")) And "15:30:00" >= CDate(Format(Now, "hh:nn")) Then
GoTo Atla1
End If
If "01.01" = Format((Tarih), "dd/mm") And "23.04" = Format((Tarih), "dd/mm") And "01.05" = Format((Tarih), "dd/mm") And "19.05" = Format((Tarih), "dd/mm") _
And "30.08" = Format((Tarih), "dd/mm") And "28.10" = Format((Tarih), "dd/mm") And "29.10" = Format((Tarih), "dd/mm") Then
GoTo Atla1
End If
If "Cumartesi" = Format(Tarih, "dddd") Or "Pazar" = Format(Tarih, "dddd") Then
GoTo Atla1
End If

deg1 = Format(Val(Mid(Tarih, 1, 2)), "00")
deg2 = Format(Val(Mid(Tarih, 4, 2)), "00")
deg3 = Format(Val(Mid(Tarih, 7, 4)), "00")
URL1 = "http://www.tcmb.gov.tr/kurlar/" & deg3 & deg2 & "/" & deg1 & deg2 & deg3 & ".xml"
.Navigate URL1
Do Until ie.ReadyState = 4: DoEvents: Loop
Do While ie.Busy: DoEvents: Loop
Set html_tba = ie.Document.getElementsByTagName("Body")
adres = Trim(Replace(Replace(Replace(WorksheetFunction.Trim(html_tba(0).innertext), Chr(13), " "), Chr(10), " "), ",", ""))
If Mid(adres, 1, 12) = "Hata - Error" Then
GoTo Atla1
End If
If Mid(adres, 1, 4) = "Hata" Then
GoTo Atla1
End If
If Mid(adres, 2, 4) = "" Then
GoTo Atla1
End If
Cells(1, "ag") = ie.Document.getElementsByTagName("table").Item(0).Rows(4).Cells(3).innertext
Exit For
Atla1:
Next m
ie.Quit: Set ie = Nothing
End With
MsgBox "EURO KUR SORGULAMA İŞLEMİ TAMAMLANDI"
End Sub

Merhaba,

windows 64bit

aynı yerde hata veriyor,

=> Cells(1, "ag") = ie.Document.getElementsByTagName("table").Item(0).Rows(4).Cells(3).innertext

internet sayfasıda " http://www.tcmb.gov.tr/kurlar/1907/010719.xml" sayfa goruntulenemedi yazıyor.
 
Aşağıdaki satırın yerine;

Kod:
deg3 = Format(Val(Mid(Tarih, 7, 4)), "00")


bunu yazın;

Kod:
 deg3 = Year(Tarih)

.
 
Geri
Üst