[Çözüldü] - Dış Veri Al

Excel programınıza Web Sayfalarından veri alarak çalışabileceğiniz bölüm.

[Çözüldü] - Dış Veri Al

İleti#1)  kenanuysaler » 05 Tem 2009 19:18

merhaba

http://www.tjk.org/S/Netice/Netice.aspx

yukarıdaki linki vba makrosu kullanarak kolaylıkla excel e aktarıyorum. hatta tarih değişikliği yaparak geçmiş tarihlere ait verileri alabiliyorum. ancak problemim şu:

listele butonunun yanında şehir seçme kısmında ikinci şehri makro yardımıyla nasıl seçeceğimi bir türlü bulamıyorum. tüm denemelerimde ilgili tarihe ait ilk sayfayı veriyor. ikinci şehri nasıl seçer ve bilgileri nasıl alabilirim acaba?

şimdiden teşekkürler
En son Murat OSMA tarafından, 11 Eyl 2009 23:31 tarihinde değiştirildi, toplamda 1 değişiklik yapıldı.
Sebep: Başlık Düzeltildi.
Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

Cevap: dış veri al

İleti#2)  Tarkan VURAL » 06 Tem 2009 17:51

Merhaba Kenan bey, sitemize hoş geldiniz.

Aşağıdaki kodlamayı inceleyiniz, takıldığınız yerlerde görüşelim.
Kod: Tümünü seç
Sub internet()
Dim ie As Object
Set ie = CreateObject("internetexplorer.application")
With ie
.navigate "http://www.tjk.org/S/Netice/Netice.aspx"
.Visible = True
Do While .busy: Loop
Set evn = New Collection
Set col = New Collection
On Local Error Resume Next
Do While .busy: Loop
For i = 180 To 255
If .document.all.Item(i).nodename = "OPTION" Then
bul = Mid(.document.all.Item(i).outerhtml, InStrRev(.document.all.Item(i).outerhtml, "value=", -1, 1), 9)
bul = Replace(Replace(bul, "value=", ""), ">", "")
bul = Mid(bul, 1, InStrRev(bul, " ", -1, 1)) * 1
If IsNumeric(bul) And bul <> 0 Then
evn.Add bul * 1
col.Add .document.all.Item(i).innerhtml
bul = Empty
End If
End If
Next i
For a = 1 To evn.Count
    mesaj = mesaj & evn(a) & "   : " & col(a) & vbNewLine
Next a
MsgBox mesaj & vbNewLine & vbNewLine & "Şu anda aktif seçim " & col(1) & " görünüyor" & _
vbNewLine & vbNewLine & col(2) & " için " & evn(2) & " kullanmalıyız." & vbNewLine & _
" Şimdi bunu kullanalım ve değişimi görelim."
.document.all.ctl00_ContentPlaceHolder1_ddlHippodrome.Value = evn(2)
End With
Set ie = Nothing
End Sub

Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26792
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: dış veri al

İleti#3)  kenanuysaler » 06 Tem 2009 20:00

Tarkan Bey teşekkür ederim ilginize. Ancak soruyu yanlış sorduğumu anladım. Yardımcı olması açısından benim kullandığım kodu yazıyorum;

burada race date i değiştirerek geçmiş günlerin koşularını görebiliyorum. tabii buraya girdiğim tarihte sitenin açılışında yüklü olan ilk şehir ne ise onu veriyor. Benim isteğim Listele butonunun yanında görüleceği üzere ikinci hatta üçüncü şehirdeki koşuyu çalışma kitabımdaki A1 hücresine aktarmak.

Yani benim amacım sayfayı açtırmak değil buradaki bilgileri excel deki çalışma sayfama almak.

şimdi anlatabildim sanırım. teşekkürler tekrar

Not: Bende kodun adres kısmındaki hipodromların atanmış değerleri ile uğraştım ama başaramadım. Her zaman ilk sayfa çıkıyor.



Kod: Tümünü seç
Sub disverial()

With ActiveSheet.QueryTables.Add(Connection:="URL;http://www.tjk.org/S/Netice/Netice.aspx?__VIEWSTATE=%
2FwEPDwUKMTc2ODMwOTM4OWQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgIFIWN0bDAwJENvbnRlbnR
QbGFjZUhvbGRlcjEkYnV0dG9uMQUhY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRidXR0b24yA4WP3kkU43Mg3ke%
2FHE%2BR8iT1Nfc%3D&__EVENTVALIDATION=%2FwEWBQLgtaRDArK47IUMAv6FisYDAv2F7sUDAuD65%2BABF8%
2F9vEqPgeYv%2FLpegsSHzFVuSE0%3D&ctl00%24ContentPlaceHolder1%24txtRaceDate=18%2F06%
2F2009&hdnDateOldDate=19%2F06%2F2009&ctl00%24ContentPlaceHolder1%24ddlHippodrome=27&ctl00%
24ContentPlaceHolder1%24button1.x=22&ctl00%24ContentPlaceHolder1%24button1.y=10", Destination:=Range("A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
End Sub
Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

Cevap: dış veri al

İleti#4)  Tarkan VURAL » 06 Tem 2009 20:53

kenanuysaler yazdı:Benim isteğim Listele butonunun yanında görüleceği üzere ikinci hatta üçüncü şehirdeki koşuyu çalışma kitabımdaki A1 hücresine aktarmak.

Yani benim amacım sayfayı açtırmak değil buradaki bilgileri excel deki çalışma sayfama almak.


Anlamadım. [ilginc]
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26792
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: dış veri al

İleti#5)  kenanuysaler » 07 Tem 2009 00:04

Güzel!

Tabii daldan düşer gibi anlatınca olmuyor. Ne yapmak istediğimi açık açık anlatayım müsaadenizle. Algoritma için gerekiyor neticede.

TJK nın sitesinde günlük at yarışı sonuçları yayınlanmaktadır. Bir gün içinde birkaç şehirde at yarışı koşulduğundan sayfaya ilk girişinizde yarışlardan herhangi birisi ilk olarak şu linkle karşınıza çıkmakta:

http://www.tjk.org/S/Netice/Netice.aspx

Geçmişte yapılmış bir yarışın sonucunu görmek istediğinizde sol üstteki tarih kısmına ilgili tarihi girerek o günün sonucunu görebiliyorsunuz. Mesela 01.07.2009 tarihini girdiğimde açılan sayfanın linki şöyle oluyor:

http://www.tjk.org/S/Netice/Netice.aspx ... utton1.y=9

Açılan sayfada o gün İstanbul da ki koşu ilk yarış olarak konulmuş. Buraya kadar bir problem yok. Ben excel deki dış veri al işlevini kullanarak (aynı zamanda makro kaydı yaparak) bu tarihteki ilk olarak karşıma çıkan yarışı ( ki bu durumda İstanbul yarışı) excel kitabımdaki ilgili sayfaya kopyalıyorum. Zaten bu dış veri al işlevinin kullanımında bana hedef hücre soruyor. Bende A1 hücresini gösteriyorum. Böylece o tarihteki neticeyi tjk nın sitesinde göründüğü şekilde alabiliyorum.
Şimde benim sorunum belirttiğim tarihte ikinci bir yarışta Ankara da yapılmış. Bunuda üstteki Listele butonunun yanındaki İstanbul yazan combobox a gelince göirebiliyorsunuz. Bu ikinci linki dış veri al komutuyla alamıyorum. Ne yaptıysam hep İStanbulla ilgili netice geliyor. Yani mantıken yukarıda yazdığım makro kodunda bu ikinci linki (Ankara) göstereceğim bir kod lazım.


Cok uzun oldu kusura bakmayın ama umarım anlatabilmişimdir.
Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

Cevap: dış veri al

İleti#6)  Tarkan VURAL » 07 Tem 2009 16:07

Şu kodlamayı bir module içine ekleyip ALT + F8 ile boş bir sayfa üzerinde çalıştırıp dener misiniz ?
Ben tarih olarak 06.07.2009 girdim.

Kod: Tümünü seç
DefStr T
Sub internet()
Rem Www.ExcelVBA.Net
Rem 07-07-2009
Dim ie As Object, i As Long, a As Long
Set ie = CreateObject("internetexplorer.application")
tadres = "http://www.tjk.org/S/Netice/Netice.aspx"
With ie
.navigate tadres
Do While .busy: Loop

10 tarih = InputBox("Lütfen sorgu tarihi giriniz", "Tarih giriniz", Date)
If tarih = "" Then GoTo 10
t1 = VBA.Left(tarih, 2)
t2 = VBA.Mid(tarih, InStr(1, tarih, ".", 1) + 1, 2)
t3 = VBA.Right(tarih, 4)
tarih = Format(t1 & "." & t2 & "." & t3, "dd\/mm\/yyyy")
mesaj = tarih
    .document.all.ctl00_ContentPlaceHolder1_txtRaceDate.Value = tarih
tarih = t1 & "%2F" & t2 & "%2F" & t3
t4 = Mid(tarih2, 1, 2)
tarih2 = t4 & "%2F" & t2 & "%2F" & t3
.document.all.ctl00_ContentPlaceHolder1_button1.Click
Set evn = New Collection
Set col = New Collection
Do While .busy: Loop
On Local Error Resume Next
For i = 180 To 255
If .document.all.Item(i).nodename = "OPTION" Then
bul = Mid(.document.all.Item(i).outerhtml, InStrRev(.document.all.Item(i).outerhtml, "value=", -1, 1), 9)
bul = Replace(Replace(bul, "value=", ""), ">", "")
bul = Mid(bul, 1, InStrRev(bul, " ", -1, 1)) * 1
If IsNumeric(bul) And bul <> 0 Then
evn.Add bul * 1
col.Add .document.all.Item(i).innerhtml
bul = Empty
End If
End If
Next i
Err.Clear
For a = 1 To evn.Count
    .document.all.ctl00_ContentPlaceHolder1_ddlHippodrome.Value = evn(a)
    .document.all.ctl00_ContentPlaceHolder1_button1.Click
    Do While .busy: Loop
With ActiveSheet.QueryTables.Add(Connection:="URL;" & tadres & "?__VIEWSTATE=% _
2FwEPDwUKMTc2ODMwOTM4OWQYAQUeX19Db250cm9sc1JlcXVpcmVQb3N0QmFja0tleV9fFgIFIWN0bDAwJENvbnRlbnR _
QbGFjZUhvbGRlcjEkYnV0dG9uMQUhY3RsMDAkQ29udGVudFBsYWNlSG9sZGVyMSRidXR0b24yA4WP3kkU43Mg3ke% _
2FHE%2BR8iT1Nfc%3D&__EVENTVALIDATION=%2FwEWBQLgtaRDArK47IUMAv6FisYDAv2F7sUDAuD65%2BABF8% _
2F9vEqPgeYv%2FLpegsSHzFVuSE0%3D&ctl00%24ContentPlaceHolder1%24txtRaceDate=" & tarih  _
& "&hdnDateOldDate=" & tarih2 & "&ctl00%24ContentPlaceHolder1%24ddlHippodrome=27&ctl00% _
24ContentPlaceHolder1%24button1.x=22&ctl00%24ContentPlaceHolder1%24button1.y=10", Destination:=Range _
("A65536").End(3)(4, 1))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
MsgBox "Toplam " & evn.Count & " yarıştan " & vbNewLine & a & ". olan " & col(a) & " yarışının aktarımı tamamlandı.", vbInformation, "Www.ExcelVBA.Net"
End With
Next a
MsgBox mesaj & " tarihine ait aktarılacak başka yarış kalmadı.", vbInformation, "Www.ExcelVBA.Net"
End With
ie.Quit
Set ie = Nothing: Set evn = Nothing: Set col = Nothing
adres = vbNullString: tarih = vbNullString: tarih2 = vbNullString
t1 = vbNullString: t2 = vbNullString: t3 = vbNullString: t4 = vbNullString
i = Empty: a = Empty
End Sub
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26792
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: dış veri al

İleti#7)  kenanuysaler » 08 Tem 2009 01:26

Tarkan Bey problem konusunda anlaştık, ne istediğimi biliyorsunuz sanırım [oley]

1. Gerçekten ilk defa karşılaştığım kodlar yazmışsınız. Sevindim yeni birşeyler öğreneceğim diye. Yazdığınız kodları F8 ile tek tek adımlayarak hatayı bulmaya çalıştım ancak çözemedim, biraz zamana ihtiyacım var sanırım.

2. Lakin problemi bir an önce çözmek adına sizden yardım almaya devam etmem lazım. Şimdi yine durumu, istediklerimi ve yazdığınız kodun sonucunda çıkanları özetlemek isterim.

DURUM

TJK nın netice sitesine bağlanıp baktığımızda ( http://www.tjk.org/S/Netice/Netice.aspx)

07.07.2009 tarihinde sayfada çıkan ilk sonuç Ankara ikincisi Southwell İngiltere
06.07.2009 tarihinde sayfada çıkan ilk sonuç Elazığ ikincisi İngiltere Ripon
05.07.2009 tarihinde sayfada çıkan ilk sonuç İstanbul ikincisi Bursa

BENİM İSTEDİĞİM

07.07.2009 tarihinde Southwell İngiltere
06.07.2009 tarihinde İngiltere Ripon
05.07.2009 tarihinde Bursa sonuclarını almak.

KODUN SONUCU

07.07.2009 tarihinde mesaj olarak Toplam 1 yarıştan 1. olan Southwell İngiltere yarışının aktarımı tamamlandı diyor
ama Ankara sonucunu yüklüyor.
06.07.2009 tarihinde mesaj olarak Toplam 1 yarıştan 1. olan İngiltere Ripon yarışının aktarımı tamamlandı diyor
ama Elazığ sonucunu yüklüyor.

05.07.2009
04.07.2009 tarihlerini seçincede tarihine aktarılacak başka yarış kalmadı diyor.


Yani mesaj olarak mutlu oluyorum ama asıl netice olarak hayal kırıklığı.

Not1: Mesaj mantığını anlıyorum. Yukarıdakileri açıklayıcı olsun diye tek tek yazdım.
Not2: Uğraşı için teşekkürler
Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

Cevap: dış veri al

İleti#8)  Tarkan VURAL » 08 Tem 2009 10:21

Siz 06-07 tarihinde 1.toplam yarışın .... diye bir mesaj aldığınıza emin misiniz ? Ben 2 diye alıyorum ve önce Elazığ sonuçlanıyor mesajı geliyor sonra İngiltere mesajı geliyor ve sonuçları sonra bitiyor. [ilginc] [ilginc]
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26792
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: dış veri al

İleti#9)  kenanuysaler » 08 Tem 2009 16:14

merhaba,

evet. ayın altısını tekrar çalıştırdım. toplam 1 yarıştan 1. ingiltere sonucu diye mesaj geliyor. ama Elazığ sonucunu yüklüyor
Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

Cevap: dış veri al

İleti#10)  Tarkan VURAL » 08 Tem 2009 16:33

Bende herhangi bir sorun olmuyor. İki yarışın da içeriklerini alıp sayfaya atıyor. Aşama aşama resimlerini ekledim, sonuç olarak çıkan dosyayı da ekledim, incelersiniz.
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26792
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Cevap: dış veri al

İleti#11)  kenanuysaler » 08 Tem 2009 17:07

enteresan!

1. Gönderdiğiniz dosyaya tekrar bir bakar mısınız lütfen?

16AB ve 172AB hücrelerinde göreceğiniz üzere ikisindede Elazığ sonuçları gelmiş. Yani İngiltere sonuçları alındı dediği halde aynı sonucu vermiş.

2. Sizin gönderdiğiniz dosyada ekrandaki bilgileri silip hiçbirşeye dokunmadan Sayfa1.internet makronuzu çalıştırdım. Çıldırmak işten değil, yine sadece Elazığ sonucunu verip, 1 yarıştan 1 olan İngiltere sonucları diyor.
Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

Cevap: dış veri al

İleti#12)  kenanuysaler » 13 Tem 2009 19:31

Tarkan Bey merhaba tekrar,

gönderdiğiniz kodu çözdüm sonunda. Hatta nedendir bilmem ama benim bilgisayarımdan kaynaklanan hatayıda buldum. Aşağıda koyu şekilde gösterdiğim gibi kodun bu kısmında İtem(i) bölümünü -1 yaparak o tarihe ait iki sayfayıda excel e aktarabildim.

Kod: Tümünü seç
For i = 180 To 255
If .document.all.Item(i - 1).nodename = "OPTION" Then
bul = Mid(.document.all.Item(i - 1).outerhtml, InStrRev(.document.all.Item(i - 1).outerhtml, "value=", -1, 1), 9)
bul = Replace(bul, "value=", "")
bul = Left(bul, 1) * 1
If IsNumeric(bul) And bul <> 0 Then
evn.Add bul * 1
col.Add .document.all.Item(i - 1).innerhtml
bul = Empty
End If
End If
Next i


Lakin bir problem varka bir türlü çözemedim. Kodun sonucunda iki yarışın sonucunuda aktarıyor diye gözüksede ikinci yarışta birincisinin aynısı. Yani mesaj kısmında iki yarışın ikincisi Bursa alındı dediği halde yine ilkindeki İstanbul yarışının bilgilerini indiriyor.

Sizden son ricam bu kodu çalıştırıp, tarih kısmınada 12.07.2009 olarak girip bakar mısınız? Yani kontrol etmenizi istediğim şey indirilen iki sayfada birbirinin aynısı.

Sanırım problem kodun

Kod: Tümünü seç
For a = 1 To evn.Count
    .document.all.ctl00_ContentPlaceHolder1_ddlHippodrome.Value = evn(a)
    .document.all.ctl00_ContentPlaceHolder1_button1.Click
    Do While .busy: Loop
With ActiveSheet.QueryTables.Add(Connection:="URL;" & tadres & "?__VIEWSTATE=%2FwEPDwUKMT...


kısmında ama ben local den baktığım halde .document.all.ctl00_ContentPlaceHolder1_ddlHippodrome.Value değerinin olduğu yeri bulamadım.

Umarım sıkmadım sizi.

Teşekkürler
Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

dış veri al

İleti#13)  kenanuysaler » 19 Tem 2009 00:19

Soruyu çözdüm. kodun son hali aşağıdadır.

Çok teşekkür ederim.

Kod: Tümünü seç

DefStr T
Sub internet()

Rem Www.ExcelVBA.Net
Rem 07-07-2009
Dim ie As Object, i As Long, a As Long
Set ie = CreateObject("internetexplorer.application")
tadres = "http://www.tjk.org/S/Netice/Netice.aspx"
With ie
.navigate tadres
Do While .busy: Loop
10 tarih = InputBox("Lütfen sorgu tarihi giriniz", "Tarih giriniz", Date)
If tarih = "" Then GoTo 10
t1 = VBA.Left(tarih, 2)
t2 = VBA.Mid(tarih, InStr(1, tarih, ".", 1) + 1, 2)
t3 = VBA.Right(tarih, 4)
tarih = Format(t1 & "." & t2 & "." & t3, "dd\/mm\/yyyy")
mesaj = tarih
    .document.all.ctl00_ContentPlaceHolder1_txtRaceDate.Value = tarih
tarih = t1 & "%2F" & t2 & "%2F" & t3
t4 = Mid(tarih2, 1, 2)
tarih2 = t4 & "%2F" & t2 & "%2F" & t3
.document.all.ctl00_ContentPlaceHolder1_button1.Click
Set evn = New Collection
Set col = New Collection
Do While .busy: Loop
On Local Error Resume Next
For i = 180 To 190
If .document.all.Item(i - 1).nodename = "OPTION" Then
bul = Mid(.document.all.Item(i - 1).outerhtml, InStrRev(.document.all.Item(i - 1).outerhtml, "value=", -1, 1), 9)
bul = Replace(bul, "value=", "")
bul = Left(bul, 1) * 1
If IsNumeric(bul) And bul <> 0 Then
evn.Add bul * 1
col.Add .document.all.Item(i - 1).innerhtml
bul = Empty
End If
End If
Next i
Err.Clear
If evn.Count = 0 Then GoTo devam1:
For a = 1 To evn.Count
devam1:
    .document.all.ctl00_ContentPlaceHolder1_ddlHippodrome.Value = evn(a)
    .document.all.ctl00_ContentPlaceHolder1_button1.Click
    Do While .busy: Loop
   
    aciksayfa = ie.locationurl
   
With ActiveSheet.QueryTables.Add(Connection:="URL;" & aciksayfa, Destination:=Range("A65536").End(3)(4, 1))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False

End With
Next a

End With
ie.Quit
Set ie = Nothing: Set evn = Nothing: Set col = Nothing
adres = vbNullString: tarih = vbNullString: tarih2 = vbNullString
t1 = vbNullString: t2 = vbNullString: t3 = vbNullString: t4 = vbNullString
i = Empty: a = Empty
End Sub




Kullanıcı avatarı
kenanuysaler
Yeni Başlamış
 
Adı Soyadı:kenan uysaler
Kayıt: 02 Şub 2009 23:56
İleti: 11
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: muğla

Cevap: dış veri al

İleti#14)  Tarkan VURAL » 19 Tem 2009 16:25

Çözümü de bizimle paylaştığınız için biz de size çok teşekkür ediyoruz. Sağolun. --)(
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26792
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü


Forum Excel ile Web Sayfaları Veri İşlemleri

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

cron
Bumerang - Yazarkafe