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

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

    1. Si no funciona el tutorial propuesto … de que sirve tu publicación? Ahórrate tu tiempo y ahórranos el nuestro. Muy mal trabajo

  3. Tiotech . No sé cómo descargar el código para generar el qr . Me puede enviar el código a mí correo por favor?

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

  4. estoy en una mac y dice el código que hay un error de compilación se esperaba fin de la instrucción

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

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

      1. hola ya hice todos los pasos pero aun asi me sale otro error que dice Sub CrearQRIndividual(Valor As Range)

  6. 
    

    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

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

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

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

  9. Buenos días, al parecer me funciona, pero no trae el codigo, dice que no puede mostrar la imagen,¡que puedo hacer?

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

    Private Declare PtrSafe 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
    

    Y listo funciona!!!

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

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