En este artículo vamos a empezar a ver
cómo podemos interactuar con Google Docs. Más precisamente cómo podemos
aprovechar las características de las hojas de cálculo y formularios de Google
Drive o Google Docs.
En el artículo
anterior vimos como rellenar formularios web desde Excel. Esto nos ayudará
para poder entender los procedimientos que utilizamos.
También utilizaremos los conceptos que
vimos en el artículo de “Entrada-Salida
de Stock en Excel”. En este caso en vez de guardar los datos localmente en
una hoja de Excel, lo guardamos en una hoja de cálculo en la web.
Click en la imagen para ver el video relacionado sino a través de este Link..
Como siempre vamos a ver un ejemplo
práctico, una idea, para mostrar el funcionamiento pero no es limitante ya que
una vez entendido podemos adaptarlo a nuestras propias mini aplicaciones.
Básicamente tenemos un formulario de
entrada-salda de stock con las mismas características que vimos en un artículo
anterior.
Recordamos rápidamente cómo funciona.
Elegimos un ítem o identificación de un producto y luego introducimos la
cantidad a entrar o dar salida en el stock. Luego con el botón ingresar
archivamos el dato en la hoja stock. Eso es todo.
Por otro lado creamos un formulario en
google docs para poder guardar nuestros datos en la web. Este formulario tiene
que tener la misma cantidad de datos o ítems que nuestro formulario. En este
caso son 5 elementos.
Crear un formulario de google es muy
fácil, en internet pueden encontrar varios ejemplos y tutoriales.
Este formulario lo podemos asociar a una
hoja de cálculo de google en donde se almacenan las respuestas al formulario.
Como se puede observar la hoja web tiene
el mismo aspecto que la hoja en Excel. Aquí es donde guardaremos nuestra base
de datos o nuestros datos.
En conclusión cuando hacemos la entrada o salida de nuestros
productos de stock. Estos elementos se anotan o se guardan en la hoja de google
docs. Esto es muy bueno porque de esta manera segurizamos la información que en
nuestra computadora se puede ver expuesta de alguna manera. Por ejemplo se
puede dañar el disco, pueden robarnos la información, etc. Lo unico que hay que
ntener en cuenta es que necesitamos una conexión a internet confiable.
Procedimiento
Datos de partida:
Como utilizamos la misma plantilla de “enstrada-salida de
stock” en teoría deberiamos partir del mismo codigo.
El problema es que los formularios en internet como y
habiamos dicho estan en su mayoria protegidos para que no se puedan utilizar
robots o software malisioso que no sea una persona. Es por eso que se protegen
con CAPTCHA por ejemplo. En el caso de los formularios de googl ees similar.
Han cambiado la forma de definirlos, etc.
Tuvimos que poner nuestro mayor esfuerzo para encontrar una
solución y lo conseguimos. Así que mostraremos pequeñas variaciones con el
código original.
Código
En el código debemos tener en cuenta que los datos son 5
en este caso: Ítem, nombre, descripción, cantidad y tipo de dato.
Se utiliza una comprobación para saber si el dato se cargo
correctamente.
Pude ser un tanto tedioso entenderlo, lo importante es ver
los conceptos generales mas allá del código.
INICIO CODIGOS----------------------------------------
Sub
Ingresar()
' Ingresar Macro
Application.ScreenUpdating = False
'Copio los datos
Range("D14:H14").Select
Selection.Copy
'pego los datos
Sheets("Stock").Select
Range("B" & Range("E2").Value).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
'Seleccionamos
la celda de ID
Sheets("Ent-Sal").Select
Range("D14").Select
'Rutina para guardar en
google docs
Dim IE As Object
'creamos el objeto para el navegador Internet
Explorer
Set IE =
CreateObject("InternetExplorer.application")
'dentro del navegador de internet
explorer, accedemos a la página donde esta el formulario HTML
IE.Navigate
Sheets("Stock").Range("H1").Value
Do
DoEvents
Loop Until IE.readystate = 4 'verifico si
cargo correctamente la página
'Completo los elementos del
formulario por ID
IE.Document.all.Item("entry.73292380").Value
= Sheets("Ent-Sal").Range("D14").Value
IE.Document.all.Item("entry.491606368").Value
= Sheets("Ent-Sal").Range("E14").Value
IE.Document.all.Item("entry.36767969").Value
= Sheets("Ent-Sal").Range("F14").Value
IE.Document.all.Item("entry.1533843748").Value
= Sheets("Ent-Sal").Range("G14").Value
IE.Document.all.Item("entry.57838728").Value
= Sheets("Ent-Sal").Range("H14").Value
'no hacemos visible la ventana de
Internet Explorer
IE.Visible = False
'enviar formulario
IE.Document.Forms(0).submit
'guardo estado pagina
pag =
Sheets("Stock").Range("H2").Value
'mensaje para avisarnos si se cargo
correctamente
If IE.LocationURL = pag Then
MsgBox
"Datos Cargados Correctamente"
Else
MsgBox "Los datos no fueron
cargados, intentar de nuevo"
End If
'cierro el internet explorer
IE.Quit
Set IE = Nothing
End Sub
------------------------------------------------------ FIN CÓDIGOS
En este código sumamos los conserva las
características de los dos códigos, por un lado el de la plantilla entrada-salida de stock y el de
rellenar el formulario. Es decir además de guardar los datos en la web los
seguimos guardando en la hoja “stock”. Esto se puede simplificar sacando esta
parte porque además tenemos nuestro método de verificación para saber si los
datos han sido enviados o no. Sin embargo, depende de la nuestra aplicación
puede ser necesario cargar los datos en el formulario sin tener internet por lo
que en algunos casos puede ser necesario conservar la hoja local, en este caso
“stock” y así tener duplicado los datos.
Una vez que tenemos cargados los datos los
podemos consultar en cualquier momento incluso compartirlos. Se podrían hacer
informes, etc. Los usos son ilimitados o simplemente limitados por la
imaginación de cada uno.
¡Esperamos que les haya gustado la idea y
vean lo fácil que es!
Recuerden que los artículos algunas veces
requieren un mayor o menor nivel de conocimiento en ciertos temas de Excel, por
ejemplo formulas avanzadas, macros o VBA, etc. Sin embargo en los artículos se
nombran todos los elementos y con esta información podemos hacer nuestras
pequeñas investigaciones usando internet, así desarrollamos nuestro
conocimiento. Por ejemplo si utilizamos
la función “Y”, que la suponemos conocida, y no sabemos ¿qué es? podemos buscar
en internet para ver como se utiliza y cuáles son los componentes. Las mini
aplicaciones no son más que la recopilación de muchos elementos para dar forma
a una nueva idea.
Pueden descargar
algunos ejemplos (plantillas/templates) de la zona de Descargas. Si
tienen alguna duda o consulta pueden hacerlo a través del formulario de contacto.
Les recomendamos
que sigan el blog por alguno de los medios, mail o por redes sociales, para
recibir las actualizaciones y novedades.
¡Éxitos!
Keys:
·
VBA
to Enter Data Online and Submit Form
·
Populate
HTML form using Excel/VBA
·
Populate
Internet Textbox, Fill Forms, click Submit using Excel
·
Automatic
Form Filling using data stored in an Excel file
·
Excel
- Populate Html Form Using Excel/vba.
·
Rellenar formulario Web con
Excel
·
Rellenar formulario HTML con
VBA en Excel.
·
Sincronizar Google Docs con
Excel.
·
Sincronizar hoja de cálculo de
google con Excel.
9 comentarios:
Excelente gracias por compartir los conocimientos
Gracias a ti por tus comentarios!
En caso de usar google chrome cono modificaria el codigo?
de donde obtenes el el numerpo de entrada o "entry.0000000000" que le corresponde a cada campo?
Hola amigo, cómo esta! Esta en el artículo anterior. Eso lo obtienes del objeto. Esta dentro del código de la página pero lo puedes obtener con la ayuda de las herramientas de desarrollador del explorador.
Esperamos tus comentarios.
Saludos
Hola, tambien se puede trabajar sobre el codigo que indica chrome? O solo IE ...
Hola amigo, cómo estas! Gracias por escribirnos!
En cuanto a tu consulta, como decimos en el artículo, es solo para IE ya que como vba es de microsoft cae de maduro. Sin embargo, algunas veces puede haber una forma pero hay que usar cosas avanzadas que no valen la pena quizás la complejidad y además no lo puede hacer cualquier persona sino un programador o alguien con un dominio amplio.
Saludos
Hola, mi pregunta es: Si creo mi Excel con un formulario en especifico y este lo van a usar muchas otras personas que van a estar llenando informacion, habra un problema de compatividad cierto??
Hola amigo, cómo estas! Gracias por escribirnos!
Con este tipo de formularios no vas a tener problema, la nueva información se coloca automáticamente una debajo de otra no importa la cantidad de personas que la estén llenando.
Esperamos tus comentarios.
Saludos
Publicar un comentario