Como enviar información de un Excel a un URL

Hola, necesito enviar información que sea tomada de algunas celdas y construye una url. Ejemplo:
A1 = juan
B1 = 5699571008
C1 = [email protected]
http://192.168.2.5/MT_ClienteExterno.aspx?Name=juan&Destinations=5699571008&[email protected]
esto debe construirse tantas veces como tantas celdas estén completas y enviarse a través de algún botón.
Hay algo que me pueda ayudar.
Gracias
Respuesta
1
Tienes que agregar una Librería a tu módulo visual basic de excel, te digo:
En el menú 'Herramientas' del editor de Visual-Basic-Excel, seleccionas la opción 'Referencias', seleccionas de la lista: 'Microsoft Internet Controls', sino está, has clic en examinar y vas a C:\windows\system32\ seleccionas el archivo shdocvw.dll, y ahora sí deberá aparecer en la lista 'Microsoft Internet Controls'.
Agregada esta librería esta librería, crea un nuevo módulo y pegas esta macro:
Sub clientesexternos()
Dim DIreccion As String
Dim appIE As InternetExplorer
Set appIE = New InternetExplorer
appIE.AddressBar = False
appIE.StatusBar = False
appIE.MenuBar = False
appIE.Toolbar = False
appIE.Height = 300
appIE.Width = 300
appIE.Resizable = False
appIE.Left = 120
appIE.Top = 220
appIE.Visible = True 'ventana oculta o visible
Range("A1").Select 'nos paramos en A1
While ActiveCell <> "" 'mientras que la celda esté llena:
'concatenamos la URL completa:
DIreccion = "http://192.168.2.5/MT_ClienteExterno.aspx?Name=" & ActiveCell _
& "&Destinations=" & ActiveCell.Offset(0, 1) _
& "&Mail=" & ActiveCell.Offset(0, 2)
'navegamos en la URL:
appIE.Navigate DIreccion
'esta doble funcion lo que hace es esperar a que cargue
'totalmente la página:
Do While appIE.Busy
DoEvents
Loop
Do While appIE.Busy
DoEvents
Loop
'pasamos a la celda siguiente (A2) y asi sucesivamente...:
ActiveCell.Offset(1, 0).Select
Wend
'cerramos la ventana de Internet explorer:
appIE.Quit
End Sub
PD: Hasta acá funciona perfectamente siempre y cuando la página no requiera logín de usuario o algo por el estilo. Si es así, me avisas.
Carlos Leal.
"El conocimiento le pertenece al mundo."
Gracias Carlos, tengo algunas dudas sobre lo que me envías:
1. Esto hace el llamado automáticamente a la URL o necesita otro proceso adicional a programar.
2. Si tengo que agregar más parámetros a la url que estén en las celdas D1, E1, etc.. como se haría
3. Como se podría dejar en el código si el usuario y password son partes de la URL Ejemplo:
http://192.168.2.5/MT_ClienteExterno.aspx?Name=juan&Destinations=5699571008&[email protected]&User=prueba&Password=test
dedsde ya agradezco tu tiempo y ayuda.
Saludos
Víctor
Víctor:
Sí, hace el llamado direccto a esa url.
En cuanto a adicionar más parámetros:
Atención a estas lineas de la macro:
DIreccion = "http://192.168.2.5/MT_ClienteExterno.aspx?Name=" & ActiveCell _
& "&Destinations=" & ActiveCell.Offset(0, 1) _
& "&Mail=" & ActiveCell.Offset(0, 2)
Las anteriores instrucciones "ActiveCell.Offset" hacen referencia AL VALOR de la celda que está en...:
ActiveCell. Offset(0, 1) 'una columna a la derecha de la celda avtiva
ActiveCell. Offset(0, -1) 'una columna a la izquierda de la celda activa
ActiveCell. Offset(1, 0) 'una fila abajo de la celda activa
ActiveCell. Offset(-1, 0) 'una fila arriba de la celda activa
Ahora si la celda que actualmente esta seleccionada es: A1, y necesitas agregar a la url dos nuevos parámetros que están en D1 y E1, quedaría:
Siendo La url que necesitas abrir:
http://192.168.2.5/MT_ClienteExterno.aspx?Name=juan&Destinations=5699571008&[email protected]&User=prueba&Password=test
y si la que estas abriendo ahora es:
DIreccion = "http://192.168.2.5/MT_ClienteExterno.aspx?Name=" & ActiveCell _
& "&Destinations=" & ActiveCell.Offset(0, 1) _
& "&Mail=" & ActiveCell.Offset(0, 2)
entonces quedaría:
DIreccion = "http://192.168.2.5/MT_ClienteExterno.aspx?Name=" & ActiveCell _
& "&Destinations=" & ActiveCell.Offset(0, 1) _
& "&Mail=" & ActiveCell.Offset(0, 2) _
& "&&User=" & ActiveCell.Offset(0, 3) _
& "&Password=" & ActiveCell.Offset(0, 4)
Con gusto, Carlos Leal
DIreccion = "http://192.168.2.5/MT_ClienteExterno.aspx?Name=" & ActiveCell _
& "&Destinations=" & ActiveCell.Offset(0, 1) _
& "&Mail=" & ActiveCell.Offset(0, 2) _
& "&User=" & ActiveCell.Offset(0, 3) _
& "&Password=" & ActiveCell.Offset(0, 4)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas