• DİKKAT

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

Web sayfasındaki linke tıklama

  • Konbuyu başlatan Konbuyu başlatan Orion1
  • Başlangıç tarihi Başlangıç tarihi

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,239
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Sayfa açıldıktan sonra listboxa tıkladıktan sonra altta bulunan grid açılıyor.
Oradan 3ncü satırdaki linke nasıl tıklarım.
Kodlar aşağıdadır.Teşekkür ederim.

Link:
http://betistuta.com/OAF.aspx

Kod:
Sub iddia59()
  Dim URL As String
  Dim i As Long
  Dim ie As Object, t, l, chk_ulke, chk_tumu, chk_tkm, chk_lig
  Dim x As Variant, sh As Worksheet, k
  'On Error Resume Next

  Range("A:A").Clear
  URL = "http://betistuta.com/OAF.aspx"
  Set ie = CreateObject("InternetExplorer.Application")
  With ie
    .Navigate URL
    .Visible = 1
    ShowWindow ie.hwnd, 6
    Do Until ie.ReadyState = 4: DoEvents: Loop
    Do While ie.Busy: DoEvents: Loop
    Application.Wait (Now + TimeValue("00:00:03"))

    Set objCollection = ie.document.getElementsByTagName("a")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).innertext = "Basketbol" Then
          objCollection(i).Click
          Application.Wait Now + TimeSerial(0, 0, 3)
          Exit Do
        End If
        i = i + 1
    Loop
  End With
End Sub
 
Merhaba.
Sayfa açıldıktan sonra listboxa tıkladıktan sonra altta bulunan grid açılıyor.
Oradan 3ncü satırdaki linke nasıl tıklarım.
Kodlar aşağıdadır.Teşekkür ederim.


Sayfa açılır, basketbol tıklanır, listbox dan ikinci sıradaki seçilir. Sorgula tıklanır. Tablo şeklindeki liste gelir.

Aşağıda açıklaması yapıldığı şekilde tablodaki satırlar tıklanabilir.

Kod:
  Dim URL As String
  Dim i As Long
  Dim ie As Object, t, l, chk_ulke, chk_tumu, chk_tkm, chk_lig
  Dim x As Variant, sh As Worksheet, k

#If Win64 Then
Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#Else
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If

Sub bekle()
    With ie
        Do Until .readyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
    End With
End Sub

Sub iddia59()

    'On Error Resume Next

    Range("A:A").Clear
    URL = "http://betistuta.com/OAF.aspx"
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
      .Navigate URL
      .Visible = 1
      'ShowWindow ie.hwnd, 6
    End With
    
    Call bekle

    Set objCollection = ie.document.getElementsByTagName("a")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).innertext = "Basketbol" Then
          objCollection(i).Click
          Exit Do
        End If
        i = i + 1
    Loop
    
    Call bekle
    
    'Listbox dan bir satır seçiliyor. item(0) 1. satır.   item(1) ikinci satır
    Set objCollection = ie.document.getElementsByTagName("select")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).ID = "ctl00_MainContentFull_MainContent_ListBox1" Then
           objCollection(i).Item(1).Selected = True
           Exit Do
        End If
        i = i + 1
    Loop
    
    Call bekle
    'Sorgula butonu tıklanıyor.
    Set objCollection = ie.document.getElementsByTagName("input")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).Name = "ctl00$MainContentFull$MainContent$Button1" Then
           objCollection(i).Click
           Exit Do
       End If
       i = i + 1
    Loop

    Call bekle

    Set objCollection = ie.document.getelementbyID("ctl00_MainContentFull_MainContent_MainGrid").getElementsByTagName("td")
    i = 0
    Do While i < objCollection.Length
           'If i / 13 < 1 Then   tabloda başlıktan sonraki ilk satır
           'If i / 13 =1  Then   tabloda Sayı: yazan satır
           'If i / 13 =2  Then   tabloda Sayı: yazan satırdan sonraki satır ve arttıkça diğer satırlar.
           
           If i / 13 < 1 Then
              objCollection(i).Click
              Exit Do
           End If
       i = i + 13
    Loop
    
End Sub
 
Son düzenleme:
Sayfa açılır, basketbol tıklanır, listbox dan ikinci sıradaki seçilir. Sorgula tıklanır. Tablo şeklindeki liste gelir.

Henüz Tablodaki satırın tıklanması tamamlanmadı.

Kod:
  Dim URL As String
  Dim i As Long
  Dim ie As Object, t, l, chk_ulke, chk_tumu, chk_tkm, chk_lig
  Dim x As Variant, sh As Worksheet, k

#If Win64 Then
Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#Else
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If

Sub bekle()
    With ie
        Do Until .readyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
    End With
End Sub

Sub iddia59()

    'On Error Resume Next

    Range("A:A").Clear
    URL = "http://betistuta.com/OAF.aspx"
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
      .Navigate URL
      .Visible = 1
      ShowWindow ie.hwnd, 6
    End With
    
    Call bekle

    Set objCollection = ie.document.getElementsByTagName("a")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).innertext = "Basketbol" Then
          objCollection(i).Click
          Exit Do
        End If
        i = i + 1
    Loop
    
    Call bekle
    
    'Listbox dan bir satır seçiliyor. item(0) 1. satır.   item(1) ikinci satır
    Set objCollection = ie.document.getElementsByTagName("select")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).ID = "ctl00_MainContentFull_MainContent_ListBox1" Then
           objCollection(i).Item(1).Selected = True
           Exit Do
        End If
        i = i + 1
    Loop
    
    Call bekle
    'Sorgula butonu tıklanıyor.
    Set objCollection = ie.document.getElementsByTagName("input")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).Name = "ctl00$MainContentFull$MainContent$Button1" Then
           objCollection(i).Click
           Exit Do
        End If
        i = i + 1
    Loop


End Sub
Sayın asri teşekkür ederim.
1 de gridden bir satırdaki link seçilirse işlem tamamdır.
 
Kod tablodaki satırlar tıklanacak şekilde güncellendi.

Gerekli açıklamalar koda eklendi.

Merhaba.
Teşekkür ederim.
Ancak gridin o satırdaki linkini çalıştırmadı.Linkin çalışması lazımdır.
 
Merhaba.
Teşekkür ederim.
Ancak gridin o satırdaki linkini çalıştırmadı.Linkin çalışması lazımdır.

Tablodaki link tıklandığında detay sayfası açılıyor. En azindan bende öyle :)

Tablo olan ekranın ekran görüntüsü ve o ekrana ait html kodunu gönderebilir misiniz. Html copy paste ile text dosyaya yapıştırılmış olursa daha iyi olur.

Sanırım IE surum farklılığı var.
 
Tabloya manuel tıklayınca açılıyor.
ben onada kod ile click yapınca açılsın istiyorum.

Dosya linktedir.

DOSYAYI İNDİR

aLY3nz.jpg
 
Tabloya manuel tıklayınca açılıyor.
ben onada kod ile click yapınca açılsın istiyorum.

Dosya linktedir.

DOSYAYI İNDİR

Gönderdiğiniz ekran görüntüsü futbol bölümüne ait buradaki tablo ile basketbol bölümündeki tablo farklıdır.

txt dosyasında kısmı bir bölüm var. Basketbol bölümündeki tablo var iken sayfa kaynak kodunu gönderir misiniz. Buradan tespit etmeye çalıştığım nokta ID ler Table lar ve td lerin durumlarıdır.

Tabloya manuel tıklayınca açılıyor.

Benim göndermiş olduğum kodda tamamen program ile tıklanmaktadır.
Herhangi bir manuel işlem yoktur.
 
Aşağıdaki döngü hiç başlamıyor.
Ben msgbox ı yanlış yere yazmışım.döngü 1 kere dönüyor.
Kod:
    Do While i < objCollection.Length
           'If i / 13 < 1 Then   tabloda başlıktan sonraki ilk satır
           'If i / 13 =1  Then   tabloda Sayı: yazan satır
           'If i / 13 =2  Then   tabloda Sayı: yazan satırdan sonraki satır ve arttıkça diğer satırlar.
           
           If i / 13 < 1 Then
              objCollection(i).Click
              Exit Do
           End If
           MsgBox objCollection(i).Value
       i = i + 13
    Loop
 
Aşağıdaki döngü hiç başlamıyor.
Kod:
Do While şartı sağlanamıyor sanırım o sebepten.

  [/quote]


Kodda bir değişiklik yaptınız mı? 

Kodu çalıştırdığınızda IE deki elle müdahalesiz gelen ekran aşağıdaki şekildedir.

[IMG]http://i.hizliresim.com/qbvMzQ.jpg[/IMG]
 
Kodda bir değişiklik yaptınız mı?

Kodu çalıştırdığınızda IE deki elle müdahalesiz gelen ekran aşağıdaki şekildedir.

Ben msgbox yanlış yere koymuşum o yüzden.1 kere dönüyor.
Basketbolu seçtim.
Tabloyu tekrardan yazdım.Tabloya sağ tıklayıp Sayfa kaynağını görüntüleden yaptım.Hepsini seçip kopyala yapıştır yaptım not defterine.

http://s3.dosya.tc/server11/76ewme/tablo.txt.html
 
Tamam şimdi oldu.Emekleriniz için teşekkür ederim.
 
Tekrar merhaba.
Basketbolda kusursuz çalışıyor.
Futbol seçtiğimde hata veriyor.
Bunu futbol seçeneğine göre nasıl yaparız?
Kodların tamamı aşağıdadır.
Kırmızı ile renklenmiş yerleri nasıl futbola göre ayarlarız.

Kod:
Dim URL As String
  Dim i As Long
  Dim ie As Object, t, l, chk_ulke, chk_tumu, chk_tkm, chk_lig
  Dim x As Variant, sh As Worksheet, k

#If Win64 Then
Private Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#Else
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
#End If

Sub bekle()
    With ie
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
    End With
End Sub

Sub iddia59test2()
    Range("A:A").Clear
    URL = "http://betistuta.com/OAF.aspx"
    Set ie = CreateObject("InternetExplorer.Application")
    With ie
      .Navigate URL
      .Visible = 1
      'ShowWindow ie.hwnd, 6
    End With
    
    Call bekle

    Set objCollection = ie.Document.getElementsByTagName("a")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).innertext = [B][COLOR="Red"]"Basketbol"[/COLOR][/B] Then
          objCollection(i).Click
          Exit Do
        End If
        i = i + 1
    Loop
    
    Call bekle
    
    'Listbox dan bir satır seçiliyor. item(0) 1. satır.   item(1) ikinci satır
    Set objCollection = ie.Document.getElementsByTagName("select")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).ID = "ctl00_MainContentFull_MainContent_ListBox1" Then
           objCollection(i).Item(1).Selected = True
           Exit Do
        End If
        i = i + 1
    Loop
    
    Call bekle
    'Sorgula butonu tıklanıyor.
    Set objCollection = ie.Document.getElementsByTagName("input")
    i = 0
    Do While i < objCollection.Length
       If objCollection(i).Name = "ctl00$MainContentFull$MainContent$Button1" Then
           objCollection(i).Click
           Exit Do
       End If
       i = i + 1
    Loop

    Call bekle

    [B][COLOR="Red"]Set objCollection = ie.Document.getElementbyid("ctl00_MainContentFull_MainContent_MainGrid").getElementsByTagName("td")
    i = 0
    Do While i < objCollection.Length
           'If i / 13 < 1 Then   tabloda başlıktan sonraki ilk satır
           'If i / 13 =1  Then   tabloda Sayı: yazan satır
           'If i / 13 =2  Then   tabloda Sayı: yazan satırdan sonraki satır ve arttıkça diğer satırlar.
           If i / 13 < 1 Then
              objCollection(i).Click
              Exit Do
           End If
       i = i + 13
    Loop[/COLOR][/B]
    ie.Quit
   ' MsgBox "Bitti2"
End Sub
 
Tekrar merhaba.
Basketbolda kusursuz çalışıyor.
Futbol seçtiğimde hata veriyor.
Bunu futbol seçeneğine göre nasıl yaparız?
Kodların tamamı aşağıdadır.
Kırmızı ile renklenmiş yerleri nasıl futbola göre ayarlarız.

Basketbol u Futbol yapın.
13 leri de 39 yapın.

Buradaki 13 rakamı tablonun kolon sayısını belirtmektedir.
 
Basketbol u Futbol yapın.
13 leri de 39 yapın.

Buradaki 13 rakamı tablonun kolon sayısını belirtmektedir.

Kod:
Set objCollection = ie.Document.getElementbyid("ctl00_MainContentFull_MainContent_MainGrid").getElementsByTagName("td")

Bu satırda hata verdi.
Object reguired hatası verdi.
 
Sayın asri , yardımlarınız için çok teşekkür ederim.
İyi geceler dilerim.
 
Geri
Üst