Foros del Web » Soporte técnico » Ofimática »

rellenar formulario WEB con excel

Estas en el tema de rellenar formulario WEB con excel en el foro de Ofimática en Foros del Web. Hola a Todos! Quiero agilizar el trabajo en la oficina, para eso tengo que rellenar de forma automatica un formulario web desde excel usando VBA, ...
  #1 (permalink)  
Antiguo 18/08/2015, 18:22
 
Fecha de Ingreso: febrero-2014
Mensajes: 16
Antigüedad: 10 años, 1 mes
Puntos: 0
rellenar formulario WEB con excel

Hola a Todos!

Quiero agilizar el trabajo en la oficina, para eso tengo que rellenar de forma automatica un formulario web desde excel usando VBA,
Se que para llenar un campo puedo usar el siguiente código:
"IE.Document.getelementbyid("gbqfq").Value = "1234""

Pero en la pagina el còdigo es este:
<tr>

<td class="rotulo"></td>
<td class="ingreso">
<input maxlength="2" size="10" name="Serie"></input>
</td>


He probado con getelementbyid, getelementbyname, y getelementbyTagName
pero sigue dandome el error 424

Que me sugieren
Muchas Gracias

Slds
  #2 (permalink)  
Antiguo 19/08/2015, 01:49
 
Fecha de Ingreso: julio-2006
Ubicación: Madrid
Mensajes: 943
Antigüedad: 17 años, 8 meses
Puntos: 56
Respuesta: rellenar formulario WEB con excel

Hola,

No sabría realmente solucionarte el problema, pero me pregunto si tu control no se llama "Serie" en lugar de "gbqfq".

Igual es ese el error que te está enviando.

Saludos!!
  #3 (permalink)  
Antiguo 19/08/2015, 14:09
 
Fecha de Ingreso: febrero-2014
Mensajes: 16
Antigüedad: 10 años, 1 mes
Puntos: 0
Respuesta: rellenar formulario WEB con excel

Cita:
Iniciado por jchuk Ver Mensaje
Hola,

No sabría realmente solucionarte el problema, pero me pregunto si tu control no se llama "Serie" en lugar de "gbqfq".

Igual es ese el error que te está enviando.

Saludos!!
Hola!

Perdón, fue error mio, el "gbqfq" es algo que escribí solo como ejemplo del código que estaba usando, en realidad si use "Serie" en el código verdadero y me dio el error 424.

Disculpas del caso

Slds
  #4 (permalink)  
Antiguo 27/08/2015, 09:11
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: rellenar formulario WEB con excel

Hola AGmzT, ojo con las funciones, tienen sensitive case, como por ejemplo

no es lo mismo
document.getElementById(Id)
que
document.getelementbyid(Id)

ahora, para cargar por web, la macro la hago en ACCESS con un WEBBROWSER, me parece que EXCEL es limitado en esa parte.

salu2
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #5 (permalink)  
Antiguo 05/09/2015, 12:35
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
De acuerdo Respuesta: rellenar formulario WEB con excel

Hola! a todos
No pretendo, AGmzT, enseñarte -en una respuesta- el lenguaje HTML. Pero si te puedo dar una idea de lo que está pasando. Veamos:

- Abre el Notepad tras lo cual copia y pega lo siguiente:
Código HTML:
Ver original
  1.   <head>
  2.     <title>Este es el 'head' de la página</title>
  3.   </head>
  4.  
  5.   <body>
  6.     <input type="text" name="txtInput_1" value="Primera caja de texto">
  7.     <br><br>
  8.     <input type="text" name="txtInput_2" value="Segunda caja de texto">  
  9.     <br><br>
  10.     <input type="text" name="txtInput_3" value="Tercera caja de texto" id="ct01">  
  11.   </body>
  12.  
  13. </html>
- Guarda este archivo de texto con el siguiente nombre: Htm de prueba.htm

- Vamos al Excel... Crea un nuevo libro e incorpórale a un módulo común la siguiente macro:

Código vb:
Ver original
  1. Sub Macro1()
  2. Dim ie, mObj, iElem
  3. Cells.Clear: Range("a1:c1") = Array("Por Id:", , "Por Name:")
  4.  
  5. Set ie = CreateObject("InternetExplorer.Application")
  6. ie.Visible = True
  7. ie.Navigate ThisWorkbook.Path & "\Htm de prueba.htm"
  8.  
  9. 'Búsqueda por Id:
  10. Set mObj = ie.Document.getelementbyid("ct01")
  11. Range("a2") = mObj.Value
  12.  
  13. 'Búsqueda por Tag:
  14. Set mObj = ie.Document.getElementsByTagName("input")
  15.  
  16. For Each iElem In mObj
  17.   Cells(Rows.Count, "c").End(xlUp).Offset(1) = iElem.Value
  18. Next
  19. End Sub
- Guarda este libro Excel EN LA MISMA CARPETA donde guardaste el archivo de texto anterior con cualquier nombre.

- ¿Qué hace esta macro?...

a) Crea una instancia de IE
b) Navega hacia la página representada por el archivo Htm de prueba.htm.
c) Y utiliza las dos variantes sobre las que quiero hacerte notar la diferencia.
___________________________

- Cuando la macro hace:
Set mObj = ie.Document.getelementbyid("ct01")

es porque EN TODA LA PÁGINA Web existe un ÚNICO elemento identificado por el nombre "ct01".

Este hecho -en la página- lo ves aquí:
<input type="text" name="txtInput" value="Tercera caja de texto" id="ct01">
(¿ves que al final dice: id="ct01"?)

¿Nos vamos entendiendo?...
___________________________

- Ahora bien: las otras dos cajas de texto no están identificadas. Nos preguntamos: ¿Cómo acceder a ellas?...

- Lo hacemos utilizando una variante del "get" anterior que es:
Set mObj = ie.Document.getElementsByTagName("input")

Los detalles a tener en cuenta son:

- La "s" en getElementsByTagName te indica que no obtendremos "un único elemento" sino TODOS los elementos identificados por el tag "input" (para el ejemplo).

- Así el objeto "mObj" de la macro se transforma en una colección de "input" a la que accedemos -una a una- mediante: For Each - Next.

- Entonces: ¿Cómo identificas de entre todos los elementos "input" el que estás intentando localizar?...
. A veces por el "className": iElem.className
. Otras veces por el "Name": iElem.Name (aparentemente éste sería tu caso).
___________________________

- Para terminar, entonces: tu macro debe recorrer -en estos casos- TODO el conjunto de "input" hasta hallar aquél cuyo "Name" estás tratando de localizar.

- Y una vez localizado: ¿Qué haces?... Bueno:

En lugar del "tranquilo y cómodo":
IE.Document.getelementbyid("gbqfq").Value = "1234"

harás:
iElem.Value = "1234"
___________________________

¿Entendido?...
Saludos, Cacho R.

Etiquetas: excel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:58.