• DİKKAT

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

Veri çekmede hata

  • Konbuyu başlatan Konbuyu başlatan Kusta
  • Başlangıç tarihi Başlangıç tarihi
Katılım
30 Kasım 2018
Mesajlar
94
Excel Vers. ve Dili
2016
İyi günler,
Web deki bir tabloyu exccele aktarırken verileri eksik aktarıyor. Örneğin sayı 25.970 bunu 25.97 olarak aktarıyor. Excelden düzelteyim diyorum hücre biçimlendirmeden ondalık kısmını 3 yapınca doğru sonucu alıyorum. Fakat sayı binin altında olunca örneğin 950, bunu da 950.000 yapıyor.
Bu yoldan çözemiyorum. Veriyi aktarırken webdeki sayısı tam aktarabilse sorun çözülecek.
yardımcı olabilir misiniz?
 
İyi günler,
Web deki bir tabloyu exccele aktarırken verileri eksik aktarıyor. Örneğin sayı 25.970 bunu 25.97 olarak aktarıyor. Excelden düzelteyim diyorum hücre biçimlendirmeden ondalık kısmını 3 yapınca doğru sonucu alıyorum. Fakat sayı binin altında olunca örneğin 950, bunu da 950.000 yapıyor.
Bu yoldan çözemiyorum. Veriyi aktarırken webdeki sayısı tam aktarabilse sorun çözülecek.
yardımcı olabilir misiniz?
Şunu farkettim web sayfasındaki tabloda nokta kullanılıyor. Fakat excele veri aktarınca bütün noktalar virgül olduğu için hatalı oluyor. Bunu webden alırken aynı şekliyle nasıl alabilirim.
 
Arkadaşlar konu ile ilgili yardımlarınızı bekliyorum.
web sayfasındaki tabloda nokta kullanılıyor. Fakat excele veri aktarınca bütün noktalar virgül olduğu için hatalı oluyor. Bunu webden alırken aynı şekliyle nasıl alabilirim.
Formül aşağıdaki gibidir.






Sub Arama()

Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Navigate "http://.............................."
ie.Width = 1500
ie.Height = 1000
ie.Visible = False
While ie.Busy
DoEvents
Wend
son = Cells(Rows.Count, "A").End(3).Row
For i = 2 To son
If Cells(i, "A") = "" Then
Cells(i, "C") = "yok"
Else

ie.document.getElementById("ctl03_ctlBASTARIH_textBox").Value = Sayfa3.Cells(i, "A")
ie.document.getElementById("ctl03_ctlBITTARIH_textBox").Value = Sayfa3.Cells(i, "B")
ie.Visible = False
While ie.Busy
DoEvents
Wend

Set TrackID = ie.document.getElementById("ctl03_btnAra")
ie.document.getElementById("ctl03_btnAra").Click
ie.Visible = False
While ie.Busy
DoEvents
Wend


Dim y As Long, z As Long, wb As Excel.Workbook, ws As Excel.Worksheet

Set wb = Excel.ActiveWorkbook
Set ws = wb.ActiveSheet

y = 3 '"Sayfa1" Column A in Excel
z = 3 '"Sayfa1" Row 1 in Excel
Do While ie.Busy: DoEvents: Loop
Do While ie.ReadyState <> 4: DoEvents: Loop

Set doc = ie.document
Set hTable = doc.GetElementsByTagName("table")
Set tb = hTable(0)
Set hBody = tb.GetElementsByTagName("tbody")

For Each bb In hBody
Set hTR = bb.GetElementsByTagName("tr")
For Each tr In hTR
Set hTD = tr.GetElementsByTagName("td")
y = 3 ' Resets back to column A
For Each td In hTD
Sayfa1.Cells(z, y).Value = td.innertext
y = y + 1
Next td
DoEvents
z = z + 1
Next tr
Next bb

End If
Next
ie.Quit

End Sub
 
Site adresi olmadan cevap vermek imkansız. Sayı olan veri hangi sütunda, kodlardan bakarak yardımcı olunabilir.
 
Site adresi olmadan cevap vermek imkansız. Sayı olan veri hangi sütunda, kodlardan bakarak yardımcı olunabilir.

Site adresi versem de işinize yaramaz. giremiyorsunuz çünkü. kurumsal bir site ve serverdan bağlanıyor.
web den çektiğim tabloda bütün iller var ve illerin karşısında 15 başlıkta veriler var. formülde yer alan Set tb = hTable(0) formülüyle bu tablodaki verileri çekmektedir. Belki incelerseniz yanlışı bulursunuz.
Aslında F8 ile ilerlediğimde verileri çekmeye başladığı zaman Sayfa1.Cells(z, y).Value = td.innertext formülüne *1 yapıyorum ve benim işimi çözüyor. ancak direk Sayfa1.Cells(z, y).Value = td.innertext * 1 yazıp sorgulama yaptığımda hata alıyorum. Bunu bile çözebilirsem işimi görecektir.
 
Set ws = wb.ActiveSheet
Satırından sonra saniye olarak bekleme kodu ekleyip deneyin.
 
hücre biçimlendirmede genel olarak olduğu için hata alıyormuşum. onu metin yaptım düzeldi. ilginiz için teşekkür ederim.
 
Geri
Üst