Existen muchas formas de guardar información de una hoja de cálculo de Excel hacia una base de datos. Pero si estamos trabajando en Visual Basic, la mejor forma de hacerlo es a través de un conector ODBC. Traducido al español como Conectividad Abierta entre Base de Datos, ODBC es un estándar creado por el SQL Access Group, un grupo de diversas compañías tecnológicas que se unieron en 1989 buscando la portabilidad e interoperabilidad entre bases de datos.
Prerrequisitos para utilizar ODBC en Windows
Se necesita un componente llamado Microsoft Visual C++ Redistibutable, a partir de la versión 2022 en adelante. Este componente lo podemos obtener desde Microsoft Learn. Una vez ingresemos al sitio, damos clic en el enlace de la opción X64.

En la ventana de dialogo, presiona el botón Guardar para que coloque el archivo en la carpeta Descargas. Si tu navegador descarga todo en automático, no es necesario hacer esto.

Abre el explorador de archivos, ve a la carpeta Descargas y con un doble clic, procede a iniciar la instalación del componente.

En la ventana de instalación del programa, marca la opción I agree to the license terms and conditions, luego presiona el botón Install.

En la ventana de Control de cuentas de usuario, presiona el botón Si para continuar.

Pasado unos momentos, la instalación habrá finalizado. Presiona el botón Close para terminar.

Instalación del controlador ODBC en Windows
Desde la página de descargas de MySQL, descarga el controlador ODBC en su última versión. Para ello, da clic en el botón Download de la opción Windows (x86, 64 bits) MSI Installer.

En la siguiente ventana da clic en la opción No thanks, just start my download. Se encuentra un poco más abajo de los botones Login y Sign Up.

En la ventana de dialogo, presiona el botón Guardar. Esto no es necesario si tu navegador hace la descarga automática.

Abre el explorador de archivos, ve a la carpeta Descargas y con un doble clic, procede a iniciar la instalación del controlador.

En la ventana del instalador, presiona el botón Next para comenzar la instalación.

A continuación, selecciona la opción I accept the terms in the license agreement. Después, presiona el botón Next.

En la siguiente ventana, deja la opción Typical seleccionada y presiona el botón Next.

Ahora, presiona el botón Install.

Saldrá una ventana solicitando permisos, presiona el botón Si (No la canceles)

Deja que la instalación haga su trabajo…

Cuando acabe la instalación, solo presiona el botón Finish.

una vez terminada la instalación, abre el menú Inicio de Windows y escribe la palabra ODBC. Selecciona la opción Orígenes de datos ODBC (64 bits) y luego da clic en Abrir.

En la ventana de dialogo, selecciona la pestaña Controladores y toma nota del nombre completo del controlador ODBC que acabamos de instalar. Necesitamos el ANSI Driver únicamente. Después de eso, presiona el botón Aceptar.

Activando el modo programador de Excel
Abre una ventana de Excel, en la parte superior se encuentra el botón Personalizar la barra de herramientas de acceso rápido.

Da clic en ese botón y selecciona la opción Más comandos.

En la ventana de dialogo Opciones de Excel, da clic en Personalizar la cinta de opciones, luego marca la casilla Programador y presiona el botón Aceptar.

En la pestaña Programador que ahora aparece, da clic en el botón Visual Basic o presiona Alt + F11

El entorno de desarrollo de Visual Basic se debe ver así:

Añadiendo las elementos necesarios para la conexión
Antes de comenzar a programar, se necesita la referencia al objeto ADODB que será el que puede manejar ODBC. Para ello, ve al menú Herramientas (Tools) y selecciona Referencias (References)

En la ventana de dialogo, busca y selecciona la opción Microsoft ActiveX Data Objects 2.8 Library, después presiona el botón Aceptar (OK)

Los módulos en Visual Basic son archivos de texto que contienen código reutilizable, así que vamos a crear la conexión a nuestra base de datos en un módulo. Para crear un módulo ve a la sección Proyecto (Project), luego presiona el botón derecho del ratón sobre VBA Project. Selecciona la opción Insertar (Insert) y luego la sub-opción Módulo (Module)

El módulo debe lucir así

Creando la conexión a MySQL en Excel
Se necesita una variable de ámbito Global de tipo ADODB.Connection
Global conexion As ADODB.Connection
Crea un procedimiento para realizar la conexión. Los procedimientos son similares a las funciones. En Visual Basic, se definen con la palabra clave Sub.
Sub conectar()
End Sub
Dentro de ese procedimiento, crea una variable de tipo String para formar lo que se conoce como cadena de conexión.
Dim cadena As String
Forma la cadena de conexión concatenando algunos elementos. El primero es el nombre del driver ODBC que instalaste hace rato. Al momento de escribir este artículo es MySQL ODBC 9.5 ANSI Driver, pero recuerda revisar su nombre completo siempre. Por favor, nota el punto y coma (;) antes de finalizar la cadena.
cadena = "DRIVER={MySQL ODBC 9.5 ANSI Driver};"
El segundo elemento incluye el nombre del servidor y la base de datos que vas a utilizar. Si estas trabajando en modo local, recuerda que el nombre debe ser localhost, de otra manera necesitas la dirección IP o el nombre del servidor remoto.
cadena = cadena + "SERVER=localhost;DATABASE=ejemplovba;"
El tercer elemento es el nombre de usuario y la contraseña. Por motivos educativos usa root, pero recuerda que es recomendable que una base de datos tenga sus usuarios propios. Por cierto, si estas usando XAMPP o algún otro software similar, el usuario root puede no tener contraseña o usar el mismo nombre como contraseña.
cadena = cadena + "USER=root;PASSWORD=root;"
Ahora, necesitas crear una instancia de la variable ADODB.Connection.
Set conexion = New ADODB.Connection
Abre la conexión a la base de datos con el método Open
conexion.Open cadena
Si la conexión regresa un estado (State) de 1, entonces se ha logrado la conexión. En caso contrario, no se ha logrado nada.
If conexion.State <> 1 Then
MsgBox "No se puede conectar a la BD", vbCritical
Else
MsgBox "Conexion establecida"
End If
Todo el código escrito queda como sigue:
Global conexion As ADODB.Connection
Sub conectar()
Dim cadena As String
cadena = "DRIVER={MySQL ODBC 9.5 ANSI Driver};"
cadena = cadena + "SERVER=localhost;DATABASE=ejemplovba;"
cadena = cadena + "USER=root;PASSWORD=root;"
Set conexion = New ADODB.Connection
conexion.Open cadena
If conexion.State <> 1 Then
MsgBox "No se puede conectar a la BD", vbCritical
Else
MsgBox "Conexión establecida"
End If
End Sub
Así va quedando nuestro módulo:

Creando la base de datos
Es momento de crear la base de datos que se necesita. En mi caso, tengo un servidor montado con XAMPP que me permite a través de phpMyAdmin gestionar todas mis bases de datos locales. Si tienes una configuración diferente a la mía, tal vez quieras saltar este paso y hacerlo como te funcione.
Lo primero es abrir XAMPP como administrador. En el menú de Inicio de Windows, escribe XAMPP, luego selecciona XAMPP Control Panel y por último Ejecutar como administrador.

En la ventana de Control de cuentas de usuario, presiona el botón Si, para permitir la ejecución del programa.

Una vez abierto XAMPP, presiona el botón de Start de Apache y luego el de MySQL.

Espera hasta que los nombres de dichos programas, aparezcan en verde.

Si tenemos una instalación típica, bastará con escribir http://localhost/phpmyadmin en la barra de dirección de tu navegador favorito.

A continuación, presiona el botón Nueva que se encuentra en la barra lateral izquierda.

En la siguiente ventana, escribe el nombre de la base de datos, luego selecciona utf8_spanish_ci como cotejamiento y presiona el botón Crear.

Con eso la base de datos ha sido creada. No importa que por el momento se encuentre vacía.

Probando la conexión ODBC
Regresa a Excel, ve a la pestaña Programador. En ella encontrarás un botón llamado Insertar. Dale clic y selecciona el primer botó de toda la lista llamado Botón (control de formulario)

Dibuja el botón dentro de la hoja de cálculo de la misma forma en como se dibuja un círculo o un cuadrado en el programa.

Al terminar de dibujar, saldrá la ventana de dialogo Asignar macro. En esa ventana, selecciona el procedimiento conectar que hiciste en el entorno de Visual Basic y presiona Aceptar.

Una vez hecho esto, Dale clic a la etiqueta del botón y cambia el texto por algo más apropiado. Para terminar de editar el botón, solo da clic afuera del mismo.

Para terminar, da clic en el botón que acabas de crear.

Si todo sale bien, debes obtener el mensaje de confirmación que programaste en el procedimiento. Con esto ya sabes como conectar una hoja de Excel a MySQL.

Comentarios, dudas y preguntas
¡Y eso es todo! No olvides dejar tus comentarios, dudas y / o preguntas. Con gusto las respondemos.

