Web sorgulama kodunu döngüye bağlamak

Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Değerli Dostlar Selamlar,
Aşağıda eklediğim Sayın Haluk'a ait Emekli Sandığı Sorgusunu döngü yaparak 1 er satır kaydırmak suretiyle 200. satıra kadar devam ettirmek istiyorum. İstiyorum ki A,B,C sütunlarına benim verilerimi girdikten sonra sorgulamaya başlayınca 5. satırda işlem yapsın. Ve 200. satıra kadar tekrarlasın.

Const URL As String = "http://www.emekli.gov.tr/bilgi/SicilTespitiServlet1"

Sub Test()
'
'Emekli Sandigi' ndan sorgulama ....
'29/06/2006 - Raider ®
'
Dim Data(1 To 3) As String
Dim IE As Object
Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object
Dim RetVal As Variant

Range("D5:G5").ClearContents

Data(1) = Range("A5")
Data(2) = Range("B5")
Data(3) = Range("C5")
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Navigate URL
Do Until IE.ReadyState = 4: DoEvents: Loop
With .Document.all
.soyad.Value = Data(1)
.ad2.Value = Data(2)
.dogumYil.Value = Data(3)
End With
IE.Document.Forms(0).Elements("mevzuatgoruntuleButon").Click
Do Until IE.ReadyState = 4: DoEvents: Loop
Do While IE.Busy: DoEvents: Loop

On Error GoTo ErrHandler:
Set HTML_Body = IE.Document.Body
Set HTML_Tables = HTML_Body.GetElementsByTagName("Table")
Set MyTable = HTML_Tables(2)

Range("D5") = MyTable.Rows(3).Cells(1).InnerText
Range("E5") = MyTable.Rows(3).Cells(2).InnerText
Range("F5") = MyTable.Rows(3).Cells(3).InnerText
Range("G5") = MyTable.Rows(3).Cells(5).InnerText
End With

GoTo SafeExit:
ErrHandler:
'MsgBox "Bilgi bulunamadi", vbCritical, "Kullanicinin dikkatine..."
SafeExit:
Set HTML_Body = Nothing
Set HTML_Tables = Nothing
Set MyTable = Nothing
Set HTML_TableRows = Nothing
Set HTML_TableDivisions = Nothing
Set IE = Nothing
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Değerli Dostlar Selamlar,
Konuya açıklık getirmek açısından Sn.Haluk Beyin hazırladığı dosya üzerinde meramımı dile getirmeye çalıştım. Dosya ektedir.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Değerli Arkadaşlar Selamlar,
Bu döngünü yapılması imkansız olduğundan mı yapılamıyor arkadaşlar. Yani yanlış anlaşılmasını istemem şöyle düşündüm web sorgulamalarında belki bu kodlarla daha zor bir durum oluşmuş olabilir mi acaba gibi bir düşünce oluştu?
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodları deneyiniz.
Kod:
Const URL As String = "[URL]http://www.emekli.gov.tr/bilgi/SicilTespitiServlet1[/URL]"
Sub Test()
    '
    'Emekli Sandigi' ndan sorgulama ....
    '29/06/2006 - Haluk ®
    '
    Dim Data(1 To 3) As String
    Dim IE As Object
    Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object
    Dim RetVal As Variant
    
    Range("D5:H28").ClearContents
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Navigate URL
        .Visible = False
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
        For i = 5 To [a29].End(3).Row
            Data(1) = Cells(i, "a")
            Data(2) = Cells(i, "b")
            Data(3) = Cells(i, "c")
                With .Document.all
                    .soyad.Value = Data(1)
                    .ad2.Value = Data(2)
                    .dogumYil.Value = Data(3)
                End With
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            .Document.Forms(0).Elements("mevzuatgoruntuleButon").Click
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
        
        On Error GoTo ErrHandler:
            Set HTML_Body = IE.Document.Body
            Set HTML_Tables = HTML_Body.GetElementsByTagName("Table")
            Set MyTable = HTML_Tables(2)
             Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
                Cells(i, "d") = MyTable.Rows(3).Cells(1).InnerText
                Cells(i, "e") = MyTable.Rows(3).Cells(2).InnerText
                Cells(i, "f") = MyTable.Rows(3).Cells(3).InnerText
                Cells(i, "g") = MyTable.Rows(3).Cells(5).InnerText
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            Set HTML_Body = Nothing
            Set HTML_Tables = Nothing
            Set MyTable = Nothing
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            .Document.Forms(1).Elements("anabuton").Click
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
        Next i
    End With
    MsgBox "İşlem Tamamlandı", vbInformation, "Kullanicinin dikkatine..."
    GoTo SafeExit:
ErrHandler:
    MsgBox "Bilgi bulunamadi", vbCritical, "Kullanicinin dikkatine..."
SafeExit:
    Set HTML_Body = Nothing
    Set HTML_Tables = Nothing
    Set MyTable = Nothing
    Set IE = Nothing
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Selamlar,
Recep Bey çok çok teşekkürler. Kardeş ne yazsam nasıl teşekkür etsem azdır. İyi ki varsın.
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Değerli Dostlar Selamlar,
Yukarıda yazılı Recep Beyin hazırlamış olduğu kodlar ile Emekli Sandığında kayıtlı kişiler sorgulanınca çalışıyor. Ancak kişinin Emekli Sandığı veri tabanında kaydı bulunamayınca işlem duruyor ve
"MsgBox "Bilgi bulunamadi", vbCritical, "Kullanicinin dikkatine..."
diyor. Kişinin kaydı bulunamadığında açıklama kısmına Kaydı yok yazıp diğer kişileri sorgulamaya devam etmesini nasıl sağlarız. Ayrıca sorgulanacak kişi sayısını 200 e çıkarınca da hata oluşuyor. Benim sorumda hep aynı kişi yazılı olunca hata gözden kaçmış olmalı.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Merhaba,

Kodları aşağıdaki şekilde düzeltiniz.
Bu kodlar ile 250 kişi için deneme yaptığımda herhangi bir hata vermedi.
Bu hata o anki yoğunluk vb. işlemlerden dolayıda oluşabilir.
Kod:
Const URL As String = "[URL]http://www.emekli.gov.tr/bilgi/SicilTespitiServlet1[/URL]"
Sub Test()
    '
    'Emekli Sandigi' ndan sorgulama ....
    '29/06/2006 - Raider ®
    '
    Dim Data(1 To 3) As String
    Dim IE As Object
    Dim HTML_Body As Object, HTML_Tables As Object, MyTable As Object
    Dim RetVal As Variant
    'On Error Resume Next
    Range("D5:H1000").ClearContents
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .Navigate URL
        .Visible = Range("j2").Value
        Do Until .ReadyState = 4: DoEvents: Loop
        Do While .Busy: DoEvents: Loop
        For i = 5 To [a65536].End(3).Row
            Data(1) = Cells(i, "a")
            Data(2) = Cells(i, "b")
            Data(3) = Cells(i, "c")
                With .Document.all
                    .soyad.Value = Data(1)
                    .ad2.Value = Data(2)
                    .dogumYil.Value = Data(3)
                End With
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            .Document.Forms(0).Elements("mevzuatgoruntuleButon").Click
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
 
        On Error GoTo ErrHandler:
            Set HTML_Body = IE.Document.Body
            Set HTML_Tables = HTML_Body.GetElementsByTagName("Table")
            Set MyTable = HTML_Tables(2)
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            If Not MyTable Is Nothing Then
                Cells(i, "d") = MyTable.Rows(3).Cells(1).InnerText
                Cells(i, "e") = MyTable.Rows(3).Cells(2).InnerText
                Cells(i, "f") = MyTable.Rows(3).Cells(3).InnerText
                Cells(i, "g") = MyTable.Rows(3).Cells(5).InnerText
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            Set HTML_Body = Nothing
            Set HTML_Tables = Nothing
            Set MyTable = Nothing
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            .Document.Forms(1).Elements("anabuton").Click
            Do Until .ReadyState = 4: DoEvents: Loop
            Do While .Busy: DoEvents: Loop
            Else
                Cells(i, "h") = "Kayıt Bulunamadı"
            End If
            Data(1) = Empty
            Data(2) = Empty
            Data(3) = Empty
        Next i
        .Quit
    End With
    MsgBox "İşlem Tamamlandı", vbInformation, "Kullanicinin dikkatine..."
    GoTo SafeExit:
ErrHandler:
    MsgBox "Programda hata oluştu", vbCritical, "Kullanicinin dikkatine..."
SafeExit:
    Set HTML_Body = Nothing
    Set HTML_Tables = Nothing
    Set MyTable = Nothing
    Set IE = Nothing
End Sub
 
Katılım
23 Şubat 2007
Mesajlar
1,212
Excel Vers. ve Dili
Excel2003
Teşekkür ederim Recep Bey harika oldu. Eline emeğine sağlık.
 
Katılım
17 Mayıs 2005
Mesajlar
117
Excel Vers. ve Dili
2013 TR
2013 EN
Selamlar,

Konu ile benzeşmesi yönünden sorumu bu alana yazmayı uygun gördüm, Web Sitelerinde yer alan Upload sistemine yani Gözat Pencerelerinin içine formumda yer alan dosya adını yazdırmanın bir yolu varmıdır.

Çok çeşitli yollar denememe rağmen bunu bir türlü başaramadım. Göndermek istediğim web sitesi kaynak kodları şu şekildedir.
Kod:
<html>
<head>
<title>EBiLDiRGE (YTL)</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<LINK rel="icon" href="http://ebildirge.ssk.gov.tr:80/WPEB/SSK.ICO">
<LINK rel="shortcut icon" href="http://ebildirge.ssk.gov.tr:80/WPEB/SSK.ICO"> 
<link rel="stylesheet" href="/WPEB/theme/Master.css" type="text/css">
</head>
  
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" marginwidth="0" topmargin="5" background="/WPEB/image/interface/background.gif">

<form name="logoutform" id="logoutform" method="post" action="/WPEB/ibm_security_logout" style="margin: 0px;">
	<input type="hidden" name="logoutExitPage" value="/logoutExitPage">
</form>
<!-- Header Picture -->
<table width="780" border="0" cellpadding="0" align="center" cellspacing="1">
  <tr> 
    <td><img src="/WPEB/image/interface/header.jpg" width="780" height="65"></td>
  </tr>
</table>
<!-- Menu -->
<table width="780" border="0" cellspacing="0" cellpadding="0" align="center" height="25">
  <tr> 
    <td width="10"><img src="/WPEB/image/interface/toolbarLeft.gif"></td>       
    <td background="/WPEB/image/interface/toolbarBack.gif" class="pg9"> 
        <a href='/WPEB/amp/ToAnaMenu'>Ana Menü</a>   <img src="/WPEB/image/interface/toolbarPanelLine.gif" align="absmiddle"> 
      <a href="/WPEB/HTML/klavuz.html" target=yardim >Yardım</a>  <img src="/WPEB/image/interface/toolbarPanelLine.gif" align="absmiddle"> 
      <a href="/WPEB/guvenlik" target=yardim >Güvenlik Uyarıları</a>  <img src="/WPEB/image/interface/toolbarPanelLine.gif" align="absmiddle">  
        <a href="javascript:document.forms['logoutform'].submit();">Çıkış</a> 
    </td>
    <td background="/WPEB/image/interface/toolbarBack.gif" class="pg9" align="right">16/11/2008 20:21</td>
    <td width="10"><img src="/WPEB/image/interface/toolbarRight.gif"></td>
  </tr>
</table>



<SCRIPT>
history.forward();
</SCRIPT>

<!-- En D?? Body Table -->
<table width="780" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FFFFFF">
<tr><td align="center">

<center>  

<TABLE WIDTH="50%" BORDER="0" CELLSPACING="0" CELLPADDING="0">
	<TR>
		<TD vAlign=bottom align=right width=11><IMG height=22 src="/WPEB/image/Border_TopLeft.gif" width="11" align="absMiddle" border="0"></TD>
		<TD class=hfont1 vAlign=middle noWrap align=left width="100%" background="/WPEB/image/Border_Top_Bg.gif"> 
Aylık Prim ve Hizmet Belgesi XML Dosya Transferi
		</TD>
		<TD vAlign="bottom" align="right" width="11">
			<IMG src="/WPEB/image/Border_TopRight.gif" width="11" align="absMiddle" height="22" border="0">
		</TD>
	</TR>
	<TR>
		<TD align="right" width="11" background="/WPEB/image/Border_Left.gif"> </TD>
		<td>
<center>
<form ENCTYPE="multipart/form-data"
	action="/WPEB/amp/dosyatransfer"
	method="post" name=form1 id=form1 >
<TABLE border="0" >
	<tr><td colspan="3">
	Dikkat:<hr>
	<li><font color='#ff0000'>5510 sayılı Kanun gereği 2008 EKİM ayına ilişkin aylık prim ve hizmet belgesinden başlanılarak yıllık ücretli izin sürelerinden de
		kısa vadeli sigorta kolları primi kesileceğinden 
		tahakkuk işlemleri sırasında  "yıllık ücretli izin bölümü" dikkate alınmayacaktır.</font>
	</td></tr>
	<TR>
		<TD width="200">Transfer Edilecek XML Dosya Adı</TD>
		<TD>:</TD>
		<TD ><input type="FILE" name="dosya" ENCTYPE="multipart/form-data" style = "caption:'abc'"  ></TD>
	</TR>

	<TR>
		<TD colspan=3>
		
		<table cellspacing="0" cellpadding="0" align="center"> 
		<tr>
		<td width="5" align="right"><img src="/WPEB/image/interface/buttonLeft.jpg"></td>
	    <td background="/WPEB/image/interface/buttonBack.jpg"> 
	    <input class="newInputButton" type="button"  name="btnSubmit" width="100%" 	value="    Dosyayı Gönder    " onclick="form1.submit();"></td>
	    <td width="5"><img src="/WPEB/image/interface/buttonRight.jpg"></td>
	    </tr> 
	    </table> 		
<!--
		<center><input type=submit style="width:200;font-weight:600" value="Dosyayı Gönder"  class=inputsubmit  onmouseover="this.className='inputSubmitHover';" onmouseout="this.className='inputSubmit';"  >
-->
		</TD>
	</TR>
	<TR>
		<TD colspan=3>
		<center> Xml Dosya Transferi İle Gönderdiğiniz Verileri Hizmet Belgesi Giriş Ekranından Toplu Kontrole Gönderiniz.
		</TD>
	</TR>
	<TR>
		<TD colspan=3>
		<center>
		</TD>
	</TR>
</TABLE>

</form>

</td><TD align=left width=11 background="/WPEB/image/Border_Right.gif"><IMG height=1 src="/WPEB/image/dot.gif" width="1" 
                                border="0"></TD>
				</TR>
				<TR height=9>
						<TD vAlign=top align=right width=11><IMG  
                        src="/WPEB/image/Border_BottomLeft.gif" 
                        border="0"></TD>
                        <TD background="/WPEB/image/Border_Bottom.gif"><IMG height=1 
                        src="/WPEB/image/dot.gif" width="1" border="0"></TD>
                        <TD vAlign=top align=left width=11><IMG  
                        src="/WPEB/image/Border_BottomRight.gif" 
                        border=0></TD>
				</TR>
			</TABLE>
			
<!-- En D?? Body Table -->
</td></tr>
</table> <br>
<br>
<br>
</td></tr></table><table width="780" border="0" cellpadding="3" align="center" cellspacing="0" bgcolor="#000000">
  <tr> 
    <td class="p10BoldWhite" align="center" valign="middle">© T.C.Sosyal Güvenlik Kurumu</td>
  </tr>
</table>


</BODY>
</HTML>
Dosya bilgisinin bulunduğu bölüm

Kod:
<TR>
		<TD width="200">Transfer Edilecek XML Dosya Adı</TD>
		<TD>:</TD>
		<TD ><input type="FILE" name="dosya" ENCTYPE="multipart/form-data" style = "caption:'abc'"  ></TD>
	</TR>

	<TR>
		<TD colspan=3>
		
		<table cellspacing="0" cellpadding="0" align="center"> 
		<tr>
		<td width="5" align="right"><img src="/WPEB/image/interface/buttonLeft.jpg"></td>
	    <td background="/WPEB/image/interface/buttonBack.jpg"> 
	    <input class="newInputButton" type="button"  name="btnSubmit" width="100%" 	value="    Dosyayı Gönder    " onclick="form1.submit();"></td>
	    <td width="5"><img src="/WPEB/image/interface/buttonRight.jpg"></td>
	    </tr> 
	    </table> 		
<!--
		<center><input type=submit style="width:200;font-weight:600" value="Dosyayı Gönder"  class=inputsubmit  onmouseover="this.className='inputSubmitHover';" onmouseout="this.className='inputSubmit';"  >
-->
		</TD>
	</TR>
bu alana formumda yer alan dosyayolu değişkenini atamayı hiç bir şekilde başaramadım.

Saygılar,
 
Üst