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!
Buenas tardes, estimados.
Al intentar ejecutar la macro me sale este error (alguien podría ayudarme, por favor)
Me parece que la respuesta a muchas de estas interrogantes está en el post escrito y en los comentarios.
Marca error en
Set QR = ActiveSheet.Pictures.Insert(Ruta)
bunas tardes disculpe pero me sale este error……
n = .Range(«A» & Rows.Count).End(xlUp).Row
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?ch…» & Valor.Value & «&chld=H|0»
Ruta = ThisWorkbook.Path & «\chart.png»
URLDownloadToFile 0, Link, Ruta, 0, 0
me sale este error me pueden ayudar
Sub CrearQRIndividual(Valor As Range), BUENOS DIAS TRATO DE HACER CODIGOS QR MASIVOS Y ESTA ME APARECE EN AMARILLO YA HE HECHO TODOS LOS PASOS Y NO ME DEJA GENERAR LOS CODIGO, POR FAVOR COLABORENME
lograste solucionar el problema?, estoy con el mismo.
Tienes que reemplazar los <> por comillas («»). Debería quedar así: Link = «http://chart.apis.google.com/chart?ch…» & Valor.Value & «&chld=H|0»
Ruta = ThisWorkbook.Path & «\chart.png»
Está página no me deja poner comillas, pero son comillas en vez de «».
Gracias por el post y el vídeo … es muy didáctico. Igualmente me sale este error y no puedo ejecutar … adjunto línea marcado en color amarillo
Set QR = ActiveSheet.Pictures.Insert(Ruta)
Tienen solucion para este problema?
tengo el mismo problema cual es la solucion
HOLA ME MARCA UN ERROR AL INTENTAR EJECUTARLO, tengo ese mismo problema
ERROR EN
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
‘—————–
HOLA QUE TAL LESLIE PUDISTE ARREGLAR EL ERROR EN AMARILLO, ME SALIO EL MISMO ERROR, SALUDOS
Hola Tio, gracias ppr tus tutoriales , me gustaria saber si hay alguna opcion en la que el codigo QR generado tenga amarrado un link que me lleve a una base de datos en excel la cual contiene referencia y las cantidades disponibles.
aprecio tu ayuda
Sub CrearQRIndividual(Valor As Range). como se soluciona
Gracias al creador de este código, se los pasó, son las modificaciones que le hice para que me funcionara, ya que, seguía teniendo problemas pese a las correcciones que habían mencionado, agregué notas para poder ubicar mas fácil que y donde mover o ajustar para que sea mas «universal».
De nuevo gracias y espero que este granito de arena les sirva tambien
#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
#End If
Sub CrearQRMasivo()
Dim n&, i&
LimpiarImagenes
With wGenerador
‘Aqui pones la letra de la columna de donde vas a generar el codigo QR
n = .Range(«I» & Rows.Count).End(xlUp).Row
‘aquí pones el numero de fila donde está el primer valor a usar formando la coordenada, en este caso es I11
For i = 11 To n
‘Aqui pones la misma letra que usaste antes, para que funcione correctamente el For
CrearQRIndividual .Range(«I» & i)
Next
End With
End Sub
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
‘Direccion de la api que me funciono, use valores de 50×50 por que necesitaba imagen pequeña
‘Ajusten al gusto, el usaba una proporcion de 300×300 que me hacia desperdiciar demasiado espacio
‘por mis requerimientos en excel
Url = «https://chart.googleapis.com/chart?chs=50×50&cht=qr&chl=» & Valor.Valu
‘————————–
‘Ajusta el borde blanco la imagen descargada recortándolo (en pixeles)
‘Mientras mas bajo el valor mas marco blanco,mas alto el valor puede incluso cortar el codigo, ajusten al gusto
Set QR = ActiveSheet.Pictures.Insert(Url)
With QR.ShapeRange()
.PictureFormat.CropLeft = 7 ‘Recorte Izquierda
.PictureFormat.CropRight = 7 ‘Recorte Derecha
.PictureFormat.CropTop = 7 ‘Recorte Superior
.PictureFormat.CropBottom = 7 ‘Recorte Izquierda
End With
‘————————–
‘Inserta la Imagen
‘Aqui debes poner donde va a aparecer el codigo qr, tienes que reemplazar las letras en comillas por la columna a usar
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
‘Aqui tambien debes poner la misma letra
.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
‘Aqui debes poner la misma molumna y fila que en -inserta la imagen- para que al limpiar se eliminen todas
wGenerador.Range(«B11», «B» & Rows.Count).RowHeight = wGenerador.Range(«B11»).RowHeight
End Sub
Amigo tengo un error en tu código, me puedes ayudar
Hola, muy buenas
Como se puede generar un código QR asociado a un pdf y que éste pdf contenga el propio codigo QR.
Muchas gracias
Hola, tengo este error al momento de ejecutar la macros
Me aparece «no se puede obtener la propiedad Insert de la clase Pictures
Y al depurar me sale en amarillo esta línea de código
Set QR = ActiveSheet.Pictures.Insert(Ruta)
Cómo se puede solucionar?
Link = «http://chart.apis.google.com/chart?cht=qr&chs=300×300&chl=» & Valor.Value & «&chld=H|0″Link = «http://chart.apis.google.com/chart?cht=qr&chs=300×300&chl=» & Valor.Value & «&chld=H|0»
esa es la solucion espero no se cambien las comillas