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!

Código QR del canal El Tío Tech

Related Articles

Responses

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  1. Buenas tardes, estimados.

    Al intentar ejecutar la macro me sale este error (alguien podría ayudarme, por favor)

    1. Me parece que la respuesta a muchas de estas interrogantes está en el post escrito y en los comentarios.

  2. bunas tardes disculpe pero me sale este error……
     n = .Range(«A» & Rows.Count).End(xlUp).Row

  3. 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

  4. 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

      1. 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»

      2. Está página no me deja poner comillas, pero son comillas en vez de «».

  5. 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)

  6. 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
    ‘—————–

  7. 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

  8. 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

  9. 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

  10. 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?

  11. 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

  12. Cuando cierro la macro ya generados los QR y al volver abrir la macro no se guardan los QR , menciona que hay un error «no se puede mostrar la imagen vinculada, puede que se haya movido, cambiado o eliminado el archivo»
    Alguna apoyo sobre esto.
    Gracias