Excelde webteki formlara veri gönderme...

Katılım
21 Ekim 2005
Mesajlar
529
Excel Vers. ve Dili
2010 - TR!
sipkam, onun yerıne ıstersenız webbrowser ıle ılgılı olan sorunlarınızı buraya yazın burda cozum uretelım daha ıyı olmazmı ??
 
Katılım
20 Haziran 2006
Mesajlar
55
örnegin excelde bir tablomuz var,

sıra ile excelde s.no,adres,Kullanıcı Adı(input id'si),Sifre(input id'si),kullanıcıadi,sifre sütunlarımız var...

veri olarak,

1,http://forum.flash.gen.tr,vb_login_username,vb_login_password,denemedenem,55555

amacim excelde bir butona tikladigimda webbrowser eklenmiş bir formu acacak, http://forum.flash.gen.tr adresini bu browserda acacak ve buradaki input id ve kullanici adlarini kullanarak foruma login olacak...

yapmak istedigim 1.adimi bu.. bunu nasil yaparim...

örnegin visual basic kodu ile

'WebBrowser1.Document.All.Item("vb_login_username").Value = "denemedeneme"
'WebBrowser1.Document.All.Item("vb_login_password").Value = "55555"
'WebBrowser1.Document.All.Item("button").Click

seklinde bu yapilabiliyor.. excel içinde bunu nasil yaparim..

???

eğer bununla ilgili detayli yardimci olabilecek varsa, bunu para karşılığı yazdırmak isterim...

ama illlaki buradan halledelim diyorsanız başka :yazici:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Merhaba;

Excel sayfasında C2 hücresine Kullanıcı Adını ve D2 hücresine de Kullanıcı şifresini yazın.

Daha sonra, aşağıdaki prosedürü çalıştırın ...

Kod:
Sub SendData2WWW()
    Dim MyURL As String
    Dim IEXPLORER As Object, MyData(1 To 2) As String
    MyURL = "http://forum.flash.gen.tr/"

    MyData(1) = Range("C2").Text
    MyData(2) = Range("D2").Text
    Set IEXPLORER = CreateObject("InternetExplorer.Application")
    With IEXPLORER
        .Visible = True
        .Navigate MyURL
        Do While .ReadyState <> 4: Loop
        With .Document.all
            .vb_login_username.Value = MyData(1)
            .vb_login_password.Value = MyData(2)
            Do While IEXPLORER.ReadyState <> 4: Loop
            IEXPLORER.Document.forms(0).elements(3).Click
        End With
    End With
    Set IEXPLORER = Nothing
End Sub
 
Katılım
20 Haziran 2006
Mesajlar
55
sağol Haluk,

teşekkür ederim...

pek 10 satir siteye MyURL değerleri A1,A2,... den alacak login ol dedigimde nasil sira ile bu komutu çalıştırtırım... ?

kullanıcı adlari B1,B2,B3....
sifreler C1,C2,C3.... hücrelerinden alacak...

birde
With .Document.all
.vb_login_username.Value = MyData(1)
.vb_login_password.Value = MyData(2)
de "vb_login_username" değerini nasil bir hücreden altırda bilirim... ?
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Sayın sipkam, amacınız hackerlik yapmak mı nedir?
 
Katılım
20 Haziran 2006
Mesajlar
55
internette sürekli yaptigim seyleri daha pratik halde yapmak için bir yol ariyorum...


Onunla ilgili ufak bir makro...


içiniz rahat olsun... :keyif:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ben hacker'lık bir şey fazla sezinlemedim.... ama belli de olmaz tabii.... :mrgreen:

Öyle olmadığını umarak;

Eğer sayfa yapıları aynı ise, aşağıdakilleri bir module yapıştırın ve Test isimli prosedürü çalıştırın.

Kod:
Sub Test()
    Dim URL As String, Uname As String, Pword As String
    For i = 2 To 12
        URL = Range("A" & i).Text
        Uname = Range("B" & i).Text
        Pword = Range("C" & i).Text
        Call SendData2WWW(URL, Uname, Pword)
    Next
End Sub
'
Sub SendData2WWW(MyURL As String, UserName As String, Password As String)
    Dim IEXPLORER As Object
    Set IEXPLORER = CreateObject("InternetExplorer.Application")
    With IEXPLORER
        .Visible = True
        .Navigate MyURL
        Do While .ReadyState <> 4: Loop
        With .Document.all
            .vb_login_username.Value = UserName
            .vb_login_password.Value = Password
            Do While IEXPLORER.ReadyState <> 4: Loop
            IEXPLORER.Document.forms(0).elements(3).Click
        End With
    End With
    Set IEXPLORER = Nothing
End Sub
 
Katılım
20 Haziran 2006
Mesajlar
55
ok.. teşekkürler..

peki açilan web sayfasini istenirse login olduktan sonra kapatabilirim...?
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Login olduktan sonra kapatılıp, kapatılmaması için D sütunu hücrelerine 1 veya 0 (sıfır) yazın. Yani, D2 hücresine 1 yazarsanız, oradaki adrese login olduktan sonra sayfa kapatılır, D4 hücresine 0 (sıfır) yazarsanız, login olduktan sonra kapatılmaz.

Revize kodlar;

Kod:
Sub Test()
    Dim URL As String, Uname As String, Pword As String, QuitYesNo As Integer
    For i = 2 To 12
        URL = Range("A" & i).Text
        Uname = Range("B" & i).Text
        Pword = Range("C" & i).Text
        QuitYesNo = Range("D" & i)
        Call SendData2WWW(URL, Uname, Pword, QuitYesNo)
    Next
End Sub
'
Sub SendData2WWW(MyURL As String, UserName As String, Password As String, QuitYesNo As Integer)
    Dim IEXPLORER As Object
    Set IEXPLORER = CreateObject("InternetExplorer.Application")
    With IEXPLORER
        .Visible = True
        .Navigate MyURL
        Do While .ReadyState <> 4: Loop
        With .Document.all
            .vb_login_username.Value = UserName
            .vb_login_password.Value = Password
            Do While IEXPLORER.ReadyState <> 4: Loop
            IEXPLORER.Document.forms(0).elements(3).Click
            If QuitYesNo = 1 Then
                IEXPLORER.Quit
            End If
        End With
    End With
    Set IEXPLORER = Nothing
End Sub
 
Katılım
20 Haziran 2006
Mesajlar
55
Ok.. Süpersiniz...

peki açılan sayfalar arasına süre nasıl koyarız... örnegin 1. login olduktan 10 sn sonra 2. sayfa acilsin gibi..

?
 

ErkanA

Banned
Katılım
5 Aralık 2005
Mesajlar
47
sipkam burada sadece yardımcı olmak ve paylaşmak amacı güden üstatlar olmasa bayağı bir sevet harcayacakmışsın galiba :). Küçük bir sitemim var. Sorunuz sormadan, ücret sözünü etmeniz bu sitenin amacına hiçte uygun değil. Bu siteden çok şey öğrenen ve faydalana biri olarak üzüldüm.
 
Katılım
20 Haziran 2006
Mesajlar
55
Sağolsun arkadaşlar yardımcı oluyorlar... Yardımlarından dolayı herkese teşekkür ederim...

Ben kimseyi fazla yormadan, benim için önemli olan ufak bir projeyi yaptirmak istedim... Tabiiki buradaki arkadaşlarin emeğinin karşiliği ölçülemez ama.. benim içim rahat olacakti...

Kodlamada iyi olmadiğim için yapmak istediğimin tümünü yaptirmak istedim....

:yardim:
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
application.wait komutunu araştırın ....
 
Katılım
20 Haziran 2006
Mesajlar
55
IEXPLORER.Document.forms(0).elements(3).Click yanılmıyorsan sayfadaki butona tiklamak icin kullanılıyor?

peki farklı yapıdaki bir sayfadaki butona nasıl tiklatabilirim?

IEXPLORER.Document.forms(0).elements(3).Click tam olarak neyi ifade ediyor?

(button'un input id'si gerekli mi?)

iyi çalışmalar
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Verdiğiniz linkteki web sayfasının kaynak kodlarında, formdaki diğer elemanların "name" özellikleri mevcut olduğu için, bir sorun olmadan onları kullandım.

Ancak, butonun "name" özelliği olmadığı için kodda sözkonusu butonla etkileşim kurabilmek için, butonun içinde bulunduğu form nesnesi içinde kaçıncı eleman olduğunu tesbit edip, o index'i kullandım.

Yani, web sayfaları ile bu şekilde alış-veriş yaparken, HTML kod yapısı .... daha doğrusu, HTML kodlarındaki nesnelerin ya "name" özelliğini ya da referans kurabileceğiniz başka bir özelliğini bilmek zorundasınız.

HTML kodlarında da tıpkı VBA kodlarında olduğu gibi nesnelerin index özellikleri 0'dan başlar. Yani, 0 index'li bir nesne ilk nesnedir. Yukarıdaki VBA kodunda, "forms(0)" diyerek, HTML dokümanındaki birinci "form" nesnesine müracaat etmemiz gibi. Daha sonra, devam edip butona kadar ulaşıyoruz....

Dolayısı ile, bir başkası gelir ve aynı web sayfasını daha değişik "name" özelliği kullanarak, yine bire-bir aynı görüntüde bir web sayfası hazırlayabilir.

Ne demişler .... "Her yiğidin bir yoğurt yeme tarzı vardır".... :mrgreen:

Bu değişik yoğurt yeme tarzından dolayı, bizim VBA kodu her web sayfasında çalışmayabilir.
 
Katılım
7 Temmuz 2004
Mesajlar
327
Excel Vers. ve Dili
office xp pro türkçe
Haluk' Alıntı:
Ne demişler .... "Her yiğidin bir yoğurt yeme tarzı vardır".... :mrgreen:

Bu değişik yoğurt yeme tarzından dolayı, bizim VBA kodu her web sayfasında çalışmayabilir.
Ustad çok güzel tanımlama :bravo:
 
Katılım
20 Haziran 2006
Mesajlar
55
button'un name özelligi tanımlı ise ;

.buttonname.click seklindemi butona tiklatacaktiniz...?

ayrica bir webbrowser'in cache'ni nasil bosaltiriz.. excel kodu icinde...?
 
Katılım
20 Haziran 2006
Mesajlar
55
excelin içinde direk bir form oluşturup içen webbrowser ekledim.. o browser içinde

WebBrowser1.Navigate2 MyURL
WebBrowser1.Document.All.vb_login_username.Value = MyData(1)WebBrowser1.Document.All.vb_login_password.Value = MyData(2)
WebBrowser1.Document.All.button.Click

yapınca çalışmıyor. dizilimde bir hata mı yapıyorum?
 
Üst