• DİKKAT

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

Formda Bulunan WebBrowser denetiminde açılan sayfadan bilgi

Katılım
6 Şubat 2005
Mesajlar
1,467
Formda Bulunan WebBrowser denetiminde açılan Web sayfasında bulunan tablodan yine formda kullanmak üzere bilgi almak mümkünmü
 
Bunun webbrowser ile bir alakası yok, önemli olan web sayfası adresidir. Excelin dış veri al özelliğini kullanarak veri alabilirsiniz. Bununla ilgilide kodlamalarda forumda mevcuttur. Arama motorundan "QueryTables" kelimesi ile arama yapabilirsiniz.
 
Leventm ben form üzerinde bulunan webbrowser'dan navigasyon ile gönderdiğim postdata ile bir asp sayfası üzerinde gelen bilgileri almak istiyorum.
 
Kusura bakma Leventm gıdım gıdım gidmeyelim.
Ben form üzerindeki webbrowser'dan Navigate'nin postdata'sı ile istekte bulunuyorum.
Bununla işlenip gelen ASP sayfasında bulunan tablo üzerindeki listeyi almak istiyorum.
Excel'in Dış veri al'nı kullanmak istemiyorum. Becerebilirsem VB6'da formunda kullanmak istiyorum.
 
Yani sizin sorunuz esas olarak VBA değil, VB ile ilgili anlaşılan.

Sayfa yapısına göre, kullanılacak kodlama değişebilir.

Siz URL'i verirseniz, bir denemek isteyen olabilir.
 
Örnek teşkil etmesi için bir dosya ekledim ....

Not:

omerceri' Alıntı:
....
Kusura bakma Leventm gıdım gıdım gidmeyelim.
....

Bu hitap tarzınız forumun geneline yakışmadı ...
 
Sn Haluk
Alıntı yaptığınız cümle kendime karşı bir özeleştiri idi aslında. Çünkü ne yapmak istediğimi tam olarak ifade etmediğim farkına vararak, boş yere sevdiğim insanların konu üzerinde tahmin üzerine yardım etme çabalarına neden olmamak için kullanmıştım alıntı yaptığınız cümleyi. Daha indirmedim ekteki dosyanızı ama şimdiden teşekkür ederim.
 
Sn Haluk
Sizin gönderdiğiniz dosyadaki kodlarla benim derlediğim kodları birleştirdim ama tablo adında sorun çıkıyor sizin linkinizdeki kaynak kodlarada baktım (18) diye bir şey göremedim. Ekte gönderdiğim basit bir ASP sayfasında tek satırlı ve iki hücreli bir tablo var ne yaptı isem tablo adına veya id'sine ulaşamadım. Bu konuda yardımcı olursanız.
 
Sayın omerceri,

Bu iş de genel mantık şu şekilde işliyor. Diyelim ki bir web sayfamız olsun. Bu web sayfasının içinde bir çok tablomuz var. Bu sayfanın html kodlarını açıp, baştan itibaren, 0 dan başlamak üzere tabloları sayarız diyelim ki bizim tablo 18. sıfırsan başladığımızda Table(17) olur. Bu tabloyu analiz ettiğimizde satırlardan (TR) ve her satırda da hücrelerden (Td) oluştuğunu görürüz. İşte aynı şekilde bu web sayfası kodları üstünden istediğimiz verileri çekebiliriz.
Örneğin:
Kod:
Sub SerbestPiyasaİstanbul()

        Dim strPath  As String
        Dim IE As Object
        Dim temp As Variant
        Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object, MyRow As Object
        Dim HTML_TableRows As Object, HTML_TableDivisions As Object
        Dim x As Integer
        ReDim Sorgu(2, 3)
       
        strPath = "http://finans.tnn.net/doviz/ust.asp"
        
        On Error Resume Next
           Set IE = CreateObject("InternetExplorer.Application")
        With IE
            .Navigate strPath
            Do Until IE.readyState = 4: DoEvents: Loop
        
        Set HTML_Tables = IE.Document.getElementsByTagName("Table")
        Set MyTable = HTML_Tables(29)
       
            For x = 1 To 4
                  Sorgu(0, x - 1) = MyTable.Rows(2).Cells(2 * x).InnerText
                  Sorgu(1, x - 1) = MyTable.Rows(5).Cells(2 * x).InnerText
            Next x
                  Sorgu(2, 0) = MyTable.Rows(12).Cells(0).InnerText
                       
         End With
        
        If Err Then
            MsgBox "Sunucu cevap vermedigi icin veriler alinamıyor...", vbCritical
            Exit Sub
        End If
        
        Set HTML_Tables = Nothing
        Set MyTable = Nothing
        Set IE = Nothing
   
       End Sub

Yukarıdaki örnekte
http://finans.tnn.net/doviz/ust.asp sayfasından 30. tablo olan Table(29) un

MyTable.Rows(2).Cells(4 ).InnerText koduyla 3. satırın 5. hücresini istediğimiz bir diziye, form metin kutusuna veya excel sayfası hücresine atayabiliriz.

Siziz örneğin çalışmamasının sebebi örneğin içndeki gggg.asp sayfasında herhangi bir tablonun olmaması sanırım.

Excelin içinde çok yararlı bir alet var o da Microsoft script Editor bu iş için çok yararlı. Hem dizaynı görebiliyorsunuz hemde HTML kodlarını.

İyi çalışmalar :D
 
İlave:

TR --- Table Row

TD --- Table Division


Bunlarda 0 (sıfır) tabanlı endekslerle ifade edilir.

Yani; tablodaki 1nci satır için Rows(0), 2nci satır için Rows(1) kullanacaksınız.

Aynı şekilde, hücreler için;

Cells(0) 1nci hücreyi ifade eder, Cells(1) 2nci hücreyi ifade eder.

Yani, HTML tablo yapıları Excel'e benzemez.

Excel'deki Cells(1,1) tablodaki 1nci satırda 1nci sütundaki hücreye ifade ederken, aynı yapıdaki bir HTML tablosunda bu hücreye VBA ile Tables(0).Rows(0).Cells(0) ile referans vermemiz gerekir.

Benim verdiğim örnek dosyadaki kodlar sadece bir örnekti. Tabii ki aynı kodları kullanamazsınız.

Bu nedenle yukarıdaki mesajımda demiştim ki;

Haluk' Alıntı:
....
Sayfa yapısına göre, kullanılacak kodlama değişebilir.
....
 
Evet tablolar için 0 'ı denemiştim ama satır sütunlar 0 kullanmak aklıma gelmedi, hata tipide aynı olduğu için fark edemedim. Yardımlarınız için teşekkür ederim.
 
Geri
Üst