Cómo enviar datos de Excel a Google Sheets usando VBA y macros
El tema de Google Sheets sigue dando de qué hablar, y como al final sigue siendo una Hoja de cálculo usada por muchas personas, es por eso que le dedicamos un nuevo video y tutorial.
En esta ocasión les mostraré cómo usar una macro en VBA para poder enviar datos desde Excel, usando el link de un Formulario de Google Forms y dar de alta valores a un archivo de Google Sheets. Cabe señalar que el código VBA me lo proporcionó Héctor Mendoza y yo le hice algunas modificaciones.
Ver Video Macro para enviar valores de Excel a Google Sheets
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Google Forms
Así como lo vimos en el tutorial donde generamos un Formulario de Google, en este tutorial vamos a usar el mismo Formulario, sólo que ahora vamos a usarlo para insertar registros en la hoja de cálculo donde se guardar sus respuestas.
Figura 1. Google Forms.
El Formulario de la Figura 1 tiene un link para que podamos compartirlo a otras personas. Ese mismo link lo usaremos para ingresar datos desde Excel. El link tiene al final el texto viewform; sólo hay que cambiarlo por formResponse.
Campos del Formulario
En la macro que te comparto más adelante, notarás que usaremos valores tipo entry.2199184. Éstos son valores asignados a cada campo del Formulario.
Para podemos visualizarlos, abrimos el Formulario en un navegador, para este caso yo uso Microsoft Edge, luego presionamos F12 para ver las Herramientas para desarrolladores. En la sección Elements buscamos las etiquetas Entry.
Figura 2. Buscar etiquetas de los campos del Google Form.
Código VBA de la macro
En Excel tenemos una rango de valores, los cuales vamos a mandar a Google Sheets. Esto se hará mediente el método POST usando el servicio WinHttp que nos permite enviar datos a través de la Web.
Figura 3. Enviar datos de Excel a Google Sheets.
'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh ' 'Código proporcionado por Héctor Mendoza Sub EnviarCaptura() Dim RespuestaMetodoPost As String 'Devuelve la información al formulario Dim FormularioUrl As String Dim DatosCapturados As String Dim HttpPlantilla As Object Dim Filas As Long Dim i As Long Set HttpPlantilla = CreateObject("WinHttp.WinHttpRequest.5.1") FormularioUrl = "Aquí pegas la URL de tu Google Form" Filas = ThisWorkbook.Sheets("Datos").Range("A1").CurrentRegion.Rows.Count For i = 2 To Filas DatosCapturados = "entry.2199184=" & Sheets("Datos").Cells(i, 1).Value 'Nombre DatosCapturados = DatosCapturados & "&entry.224277970=" & Sheets("Datos").Cells(i, 2).Value 'Sucursal DatosCapturados = DatosCapturados & "&entry.1613666299=" & Sheets("Datos").Cells(i, 3).Value 'VENTAS HttpPlantilla.Open "POST", FormularioUrl, False HttpPlantilla.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" HttpPlantilla.send (DatosCapturados) RespuestaMetodoPost = HttpPlantilla.responseText Next i MsgBox "Datos enviados correctamente" End Sub
Descarga el archivo de ejemplo
De Excel a Google Sheets.xlsm.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.