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.

Google Forms

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.

Buscar etiquetas de los campos del Google Form

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.

Enviar datos de Excel a Google Sheets

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.

You may also like...