Visual Basic - enviar datos desde excel a un formulario de una pagina web

Life is soft - evento anual de software empresarial
 
Vista:

enviar datos desde excel a un formulario de una pagina web

Publicado por marta (2 intervenciones) el 28/02/2014 10:08:08
Buenos días:

Soy Marta Chacón, os escribo porque tengo el siguiente problema de Visual Basic.
He programado en otros lenguajes como java o C pero en Visual Basic nunca había hecho ningún proyecto.
Mi problema es el siguiente:

Quiero realizar un formulario en excel, utilizando una macro programada en Visual Basic que me rellene un formulario que hay en una página web de forma automática al pulsar un botón que me he creado. Me surgen dos inconvenientes:

-Por un lado, en el código que adjunto a continuación, me da un error cuando lo ejecuto. El error es el 438, el objeto no admite esta propiedad o método. La línea en la que me da el error es ie.document.form.Address.Value = sAdd1.

-El siguiente problema, es que no se como realizar el formulario en una hoja de excel y que estos datos se envíen a la página web.
En el código que adjunto a continuación he conseguido abrir la página web con el navegador que quiera, pero no he podido hacer nada más.

Si alguien pudiera echarme una mano estaría super agradecida.
Gracias.

El código es el siguiente:

Sub push_web_info()
reee = ZipPlusFour("9 Spring Hill Rd", "Annandale", "NJ")
'Option Explicit
End Sub

Function ZipPlusFour(sAdd1 As String, _
sCity As String, _
sState As String _
) As String
' Option Explicit
Dim ie As Object
Dim sResult As String
Dim sCityState As String
Dim lStartCity As Long
Dim dtTimer As Date
Dim lAddTime As Long
Const sUPSURL As String = "http://zip4.usps.com/zip4/welcome.jsp"
Const lREADYSTATE_COMPLETE As Long = 4
Set ie = CreateObject("InternetExplorer.Application")
ie.silent = False
ie.Visible = True
ie.navigate "http://zip4.usps.com/zip4/welcome.jsp"

dtTimer = Now
lAddTime = TimeValue("00:00:20")
Do Until ie.readystate = lREADYSTATE_COMPLETE And Not ie.busy
DoEvents
If dtTimer + lAddTime > Now Then Exit Do
Loop

ie.document.form.Address.Value = sAdd1
ie.document.form.City.Value = sCity
ie.document.form.State.Value = sState
ie.document.form.submit
dtTimer = Now
lAddTime = TimeValue("00:00:20")
Do Until ie.readystate = lREADYSTATE_COMPLETE And Not ie.busy
DoEvents
If dtTimer + lAddTime > Now Then Exit Do
Loop
sResult = ie.document.body.innertext
sCityState = sCity & " " & sState
lStartCity = InStr(1, sResult, sCityState, vbTextCompare)
lStartCity = InStr(lStartCity + 1, sResult, sCityState, vbTextCompare)
If lStartCity > 0 Then
ZipPlusFour = Mid(sResult, lStartCity + Len(sCityState) + 2, 10)
Else
ZipPlusFour = "Not Found"
End If
ie.Quit
Set ie = Nothing
End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JuanC

enviar datos desde excel a un formulario de una pagina web

Publicado por JuanC (15 intervenciones) el 06/03/2014 19:10:21
no creo que pueda hacerse directamente, una opción 'difícil' puede ser simular el presionado de teclas (hook de por medio)...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

enviar datos desde excel a un formulario de una pagina web

Publicado por marta (2 intervenciones) el 07/03/2014 11:28:51
Gracias Juan, podrías decirme un poco más como podría simular el presionado de teclas.

Y del otro problema que tenía en la línea del código que adjunte, sabrías como podría solucionarlo.

Un saludo y gracias de nuevo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

enviar datos desde excel a un formulario de una pagina web

Publicado por Sara (1 intervención) el 04/11/2014 09:52:38
Hola Marta,

Conseguistes al final pasar datos de excel a un formulario web? Es que me está costando la vida encontrar la solución.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar