Generar Códigos QR en Excel con Macro y VBA
Tutorial Avanzado FÁCIL: Aprende a generar tus propios códigos QR en Excel con Macros y VBA. Puedes descargar el código haciendo clic en el botón verde de la parte inferior del vídeo.
¿Qué es un Código QR?
Un código QR (del inglés Quick Response code, «código de respuesta rápida») es la versión mejorada del código de barras. Este código sirve para almacenar información en una matriz de puntos o en un código de barras bidimensional. Fue creado en 1994, pero su uso se ha extendido masivamente en los últimos años, ya que tiene un sinnúmero de aplicaciones.
Cómo crear un código QR en Microsoft Excel
En tutoriales pasados aprendimos a generar códigos de barras en Excel, esta vez veremos cómo generar códigos QR con Excel gratis.
Cómo corregir el error en el código:
Un agradecimiento especial a Hector Castro, que se tomó el tiempo para sugerir una solución al programa de QR con Excel.
Hola, Me gusto mucho el vídeo, estoy trabajando con códigos QR y este tutorial me ha ayudo a mejorar un poco la macro que tenia. Sin embargo al principio tuve el mismo error que muchos dicen en los comentarios. Lo pude solucionar de la siguiente manera:
*Paso 1: Copian la descripción de la macro igual del link del video.
*Paso 2: La primera linea dice: #If VBA7 And Win64 Then (Pensando; creo que se refiere al tipo de procesador que tiene su computadora); lo cambian a #If VBA7 And Win32 Then
*Paso 3: Se van a la parte donde aparece el link: Link = «http://chart.apis.google.com/chart?ch…» & Valor.Value & «&chld=H|0» y lo cambian por: Link = «http://chart.apis.google.com/chart?cht=qr&chs=300×300&chl=» & Valor.Value & «&chld=H|0»
*Paso 4: No olviden cambiar la el nombre de la hoja donde procesaran la macro a wGenerador como lo dice en el vídeo
Nota 1: Estuve intentando de varias maneras hacerlo funcionar y así como lo explique pude solucionarlo. Espero les funcione.
Aplicaciones de los códigos QR
Los códigos QR pueden usarse de muchas maneras. Básicamente, puedes entenderlo como una especie de «llave digital» que te permite acceder al contenido virtual que fue encriptado en dicho código.
Podemos usar códigos QR para almacenar información de una base de datos, ejecutar una acción como abrir una aplicación en internet, compartir un mapa de localización, un correo electrónico, una página web o un perfil en una red social.
Ejemplos:
Los códigos QR son útiles para las empresas, pues les permiten estar más en contacto con los clientes, conocer sus necesidades y aclarar sus dudas. Estos códigos QR no solo darían información, sino que se presentarían como una oportunidad de difundir y recibir información de los clientes, generar campañas de marketing, etc.
En algunos museos y lugares históricos se usan los códigos QR para proporcionar información adicional sobre objetos y monumentos. De este modo, el visitante puede ser guiado utilizando un móvil inteligente. La información ofrecida puede ser en formato multimedia con información complementaria mediante audios, vídeos, textos, etc.
También se utilizan comúnmente en el campo de las monedas criptográficas, como el Bitcoin. Direcciones de pago, claves criptográficas y la información de transacciones a menudo son compartidos entre carteras digitales de esta manera.
Los Códigos QR pueden ser personalizados y esto permite que las marcas incorporen su identidad visual en ellos. Eso sí, se debe seguir algunas estructuras básicas de los Códigos QR para que estos sean legibles a los decodificadores, sin embargo es una potente herramienta de mercadeo que se está aprovechando en nuestros días.
Cómo leer códigos QR con el celular
Hoy en día los teléfonos de gama media y alta ya son capaces de leer códigos QR simplemente con la aplicación de cámara. Pero si ese no fuera el caso, puedes ir a la PlayStore para descargar un escáner o lector de códigos QR.
Una vez instalado, solo tienes que enfocar el código con la cámara y esperar unos segundos.
¡Prueba con este código!
NO FUNCIONA.
Run-Time error ‘1004’
Unable to get the Insert property of the picture class
After debugging:
Set QR = ActiveSheet.Pictures.Insert(Ruta)
¿Si sabe la solución a esto?
ME MARCA EL MISMO ERROR
Ya actualizamos el post con la solución. Gracias 😀
IGUAL ME SALE
Estimado, aquí no ofrecemos productos ni servicios, brindamos tutoriales para que las personas aprendan por sí mismas a desarrollar sus propios programas.
¿Cómo puede reclamar por un tutorial gratuito?
Si no funciona el tutorial propuesto … de que sirve tu publicación? Ahórrate tu tiempo y ahórranos el nuestro. Muy mal trabajo
Tio tech , tio tech, tio tech, tio, tio… podes dexir la respuesta tio?
Set QR = ActiveSheet.Pictures.Insert(Ruta)
amigo cual es la solucion de este error,
Tiotech . No sé cómo descargar el código para generar el qr . Me puede enviar el código a mí correo por favor?
Hola, Jorge. Abajo del vídeo hay un botón verde que dice «Descargar código», haces clic ahí y listo.
No olvides que la corrección del mismo está en el post.
disculpe
tengo el error
Set QR = ActiveSheet.Pictures.Insert(Ruta)
estoy en una mac y dice el código que hay un error de compilación se esperaba fin de la instrucción
No funciona !!!
Seguí los 4 pasos que se mencionan pero me sale el siguiente error:
Set QR = ActiveSheet.Pictures.Insert(Ruta)
Agradecería que alguien me dijera cómo puedo corregirlo.
Saludos Aquí tienes la solución:
Para el error que les había estado generando a muchos en esta pagina y en el canal de youtube donde les salía: Set QR = ActiveSheet.Pictures.Insert(Ruta), la ruta es la ruta de la Api de google, solo basta insertarlo y borran como han dicho muchos el «Kill Ruta» y ya listo!!!! eso todo así de fácil, si analizan el código. ¿Que otra ruta o link puede ser? sino la misma API que se les esta solicitando. coloquen lo que sigue tal cual y listo!!!!!.
Set QR = ActiveSheet.Pictures.Insert(«http://chart.apis.google.com/chart?cht=qr&chs=300×300&chl=» & Valor.Value & «&chld=H|0»).
Espero les resulte!!!!
Saludos
hola ya hice todos los pasos pero aun asi me sale otro error que dice Sub CrearQRIndividual(Valor As Range)
BUenas me aparece el siguiente error: ERROR DE COMPILACION NO SE HA DEFINIDO SUB O FUNCTION, y me resalta en amarillo «Sub CrearQRIndividual(Valor As Range)»
URLDownloadToFile
Como puedo corregir este error?
GRACIAS
BUEN DÍA, YA HICE TODO CONFORME A LAS INSTRUCCIONES DEL VIDEO, NO FUNCIONAN LOS BOTONES DE CREAR Y LIMPIAR, Y ME MARCA UN ERROR: ERROR DE COMPILACIÓN: SE ESPERABA FIN DE LA INSTRUCCIÓN, QUE TENGO QUE MODIFICAR.
SALUDOS
ME SALE EL MISMO ERROR Y NO SE COMO SOLUCIONARLO
El error es por el link, el link actual es
Link=»https://chart.apis.google.com/chart?cht=qr&chs=300×300&chl=»& Valor.Value & «&chld=H|0»
Saludos
Este código no da error. No olviden cambiar la el nombre de la hoja donde procesaran la macro a wGenerador. Las columnas y filas funcionan de la misma manera que en el video.
#If VBA7 And Win64 Then
Private Declare PtrSafe Function URLDownloadToFile Lib «urlmon» _
Alias «URLDownloadToFileA» ( _
ByVal pCaller As LongPtr, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As LongPtr, _
ByVal lpfnCB As LongPtr _
) As Long
#Else
Private Declare Function URLDownloadToFile Lib «urlmon» _
Alias «URLDownloadToFileA» ( _
ByVal pCaller As Long, _
ByVal szURL As String, _
ByVal szFileName As String, _
ByVal dwReserved As Long, _
ByVal lpfnCB As Long _
) As Long
#End If
Sub CrearQRIndividual(Valor As Range)
Dim Link$, Ruta$, QR As Object
Dim lado&, izqui&, nTop&
‘Descargo el código QR
If Valor.Value = Empty Then
Exit Sub
End If
Link = «http://chart.apis.google.com/chart?cht=qr&chs=300×300&chl=» & Valor.Value & «&chld=H|0»
Ruta = ThisWorkbook.Path & «\chart.png»
URLDownloadToFile 0, Link, Ruta, 0, 0
‘—————–
‘Ingreso la imagen
Set QR = ActiveSheet.Pictures.Insert(Ruta)
Kill Ruta
With wGenerador
nTop = .Range(«B» & Valor.Row).Top
lado = .Range(«B» & Valor.Row).Width
izqui = .Range(«B» & Valor.Row).Left
With QR
.Top = nTop
.Width = lado
.Left = izqui
End With
.Range(«B» & Valor.Row).RowHeight = lado
End With
‘—————–
End Sub
Sub LimpiarImagenes()
Dim imagen As Picture
For Each imagen In ActiveSheet.Pictures
imagen.Delete
Next
wGenerador.Range(«A4», «A» & Rows.Count).RowHeight = wGenerador.Range(«A1»).RowHeight
End Sub
Sub LimpiarTodo()
LimpiarImagenes
wGenerador.Range(«A4», «A» & Rows.Count) = Empty
End Sub
Sub CrearQRMasivo()
Dim n&, i&
With wGenerador
n = .Range(«A» & Rows.Count).End(xlUp).Row
For i = 4 To n
CrearQRIndividual .Range(«A» & i)
Next
End With
End Sub
me sigue saliendo error “urlmon”
Buenos días, al parecer me funciona, pero no trae el codigo, dice que no puede mostrar la imagen,¡que puedo hacer?
AYUDA!!! me aparece El objeto With debe ser un tipo definido por el usuario, un objeto o una variante
Gracias por el post, funciona siguiendo los pasos descritos el unico error adicional que solvente fue agregar la declaración URLDownloadToFile agregando el siguiente codigo en el modulo antes del codigo que tienes
Y listo funciona!!!
en que modulo
Buenas tardes, muchísimas gracias por el ejemplo, muy útil
Tengo una pregunta, cuando genero el código QR y encuentra un # en el texto de Excel, el QR se para.
En teoría con la api google sí que está soportado el # como caracter ¿qué puede estar fallando?
Muchas gracias de antemano
hola muchas gracias por el video está super bien explicado pero ya hice todo en el video y lo que se agrego para corregir errores pero me sigue marcarndo este error:
Sub CrearQRIndividual(Valor As Range)