Genera fácilmente códigos de barras Code 128 en Excel

Con esta simple metodología puedes generar fácilmente y de manera fiable los códigos de barras CODE 128 utilizando Excel de Microsoft Office.
Existen muchas metodologías publicadas en línea para generar códigos de barras Code 128 en Excel. Desafortunadamente, la mayoría de ellas son complicadas o no funcionan en las versiones posteriores de Excel que la mayoría de la gente usa hoy en día.
Lo primero es explicar que Code 128 es un código de barras de alta densidad, usado ampliamente en logística y paquetería. Puede codificar caracteres alfanuméricos o solo numéricos. Con este código es posible representar todos los caracteres de la tabla ASCII, incluyendo los caracteres de control. Para más informacion visita barcodeisland.
Usa esta simple metodología para generar fácilmente y de manera fiable los códigos de barras CODE 128 con Excel.
Un código de barras Código 128 tiene seis secciones:
- 1. Zona tranquila. Al principio a la izquierda, que debería tener la longitud de dos caracteres.
- 2. Carácter inicial ó carácter de inicio
- 3. Datos codificados. Un número variable de caracteres ASCII y que es propiamente el código
- 4. Carácter de verificación. Un dígito para checkear la integridad de los datos.
- 5. Detener el carácter. Un carácter de fin o "Stop character".
- 6. Zona tranquila. Al final a la derecha, igual que al principio de dos caracteres.
El carácter de verificación se calcula a partir de una suma ponderada (módulo 103) de todos los caracteres. Debido a esto, la generación de códigos de barras Código 128 no es tan simple como escribir la secuencia numérica en un programa utilizando una fuente de código de barras. Si intentas hacerlo así con los códigos de barras del Código 128 te saldrá mal.
Debido a que recientemente tuve motivos para generar códigos de barras Código 128, sentí que sería valioso publicar mi metodología, que se basa en el trabajo de otras personas. Siga estos pasos para crear tu propio generador de código de barras Code 128 en Excel:
PASO UNO
Descargue el archivo de la fuente del código de barras Code 128 e instálela en su carpeta de fuentes en c:\windows\fonts
(Necesitará permisos de administrador para hacerlo).
PASO DOS
Asegúrese de que tiene la pestaña de programador habilitada en Excel. Si no es así, habilítela siguiendo estas instrucciones.
PASO TRES
Abre Microsoft Excel con una hoja en blanco. Crea una tabla, asegurándose de que "tiene formato de tabla", con la siguiente estructura y encabezados: (Si no sabes hacerlo sigue estas instrucciones)
PASO CUATRO
En Excel, vaya a la pestaña de Programador de la cinta de opciones y seleccione "Visual Basic".
PASO CINCO
Haga clic en la pestaña de Insertar del menú de Visual Basic y después seleccione "Módulo". O bien, en la cinta de opciones despliegue el submenú de Insertar y seleccione "Insertar módulo".

Ahora pegue el siguiente código, que fue escrito por Philip Treacy:
Guarde el módulo y cierre Visual Basic
PASO SEIS
Regrese a su hoja de Excel e inserte las siguientes fórmulas:
- En la celda B2 (“Barcode String”), la fórmula:
=code128([@Barcode])
- En la celda C2 (“Barcode Presentation”), la fórmula:
=[@[Barcode String]]
- En la celda D2 (“Check”), inserte:
SI(ESNUMERO(BUSCAR("Â";[@[Barcode Presentation]];1));"Error!!";"OK")
PASO SIETE
Realiza copia hacia abajo de las tres fórmulas en las mismas columnas.
Selecciona el rango de celdas de la columna C excepto el título "Barcode Presentation" y cambie a la fuente a "Code 128". Ahora, cuando insertas datos en la celda A2, se debe mostrar un código de barras en la celda C2 y así sucesivamente en toda la tabla.
Ajusta el alto de las filas y el ancho de las columnas, así como el tamaño de fuente "code 128" para poder visualizar mejor los códigos de barras. Guarda el libro Excel.
Si esto no funciona, es posible que deba cerrar y volver a abrir Excel en esta etapa.
# CONSIDERACIONES
Desafortunadamente, este script no es perfecto y, a veces, se muestran caracteres extraños en el medio del código de barras, particularmente si se copian números de otras fuentes.
La fórmula en la columna D está diseñada para mostrar "Error!!". Esto ocurre para alertar al operador. Agregué formato condicional con una regla para resaltar las celdas.
Normalmente, se soluciona simplemente con un "copia y pega" otra vez del valor sin formato en la misma celda, o volver a escribir el código. Este error no suele suceder a menudo.
# APLICACIÓN PRÁCTICA
Me surgió la necesidad de crear esta herramienta a petición de LUBERALBA, una empresa textil de Balazote, para confeccionar las etiquetas adhesivas de sus prendas, en las que figura el código de barras CODE 128 para identificar a las mismas.
También la utilizo en CORREOS, a la hora de transformar los códigos de los envíos registrados en códigos de barras CODE 128 que pueden leer la PDA o la pistola para completar los campos de los formularios del SGIE. En ocasiones, me facilita enormemente el trabajo disponer de esta utilidad.
- Etiquetas: : Excel
pere
Hola,
gracias por este código maravilloso. El lector no me reconoce los códigos que tienen 00 porque el programa genera un espacio en el código de barras. Para corregirlo, he modificado el código:
dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 100)
por
dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 100)
dummy% = IIf(dummy% = 32, 194, dummy%) ' Hace que el espacio pase a ser un Â
Gracias y un saludo
reply
Armando
Buen día, utilicé este código y todo bien, inserté las líneas de código que pones en tu comentario, el problema me surgió cuando un código lleva 000 o mas, como dicen arriba, el codigo no es perfecto y no estoy en capacidad de mejorarlo, solo probarlo, te agradezco de antemano.
reply
Fernando
Muchas gracias, va perfectamente.
Le he metido tres datos al ean 128 artículo, lote y fecha caducidad, artículo me lo lee bien, pero lote y fecha me los junta. Tengo que meter algún dígito de separación entre dichos campos??
reply
Angel
Mil gracias !!
Llevaba tiempo intentanto implementar esta función, siguiendo las explicaciones me ha resultado facilisimo.
Muy buenos aportes, todos ellos.
Un saludo !!
reply
damian
Hola! estoy intentando agregarle caracteres de control, pero no me los codigifica correctamente, en mi caso por el sistema que quiero utlizar, necesito darle "3 Enter" en total, yo le agrego \n\n\n pero no funciona. Como deberia hacer?
reply
Super User
Revisa desde el principio todo el proceso y el método que has utilizado. Si has seguido escrupulosamente mi metodología no habría ningún problema en agregar caracteres de control como \ ( [ en la fórmula de barcode y que genera tú código de barras. Yo no puedo evaluar tu hoja de calculo a ciegas. Empieza desde cero otra vez. En informática decimos que "los programas hacen lo que tú les ordenas que hagan, no lo que tú quieres que hagan". No desesperes y reinténtalo. Haz grande tu resilencia.
reply
Mario H. Ritossa
Muchas gracias, funcionó perfecto.
Me encuentro con el siguiente problema, para ingresar el código en la columna A uso la siguiente función,=SI(F8>1;CONCATENAR(F8;F9);""), que toma datos de dos celdas distintas y los une.
Como se podría solucionar esto, si es que se puede y tiene algun costo, espero tu respuesta.
Saludos,
Mario H. Ritossa
R. Argentina
reply
Super User
No debe haber ningún problema en usar funciones para obtener el "BARCODE" en la columna A. Pero te aconsejo que utilices formulas y funciones en otra hoja y el resultado lo enlaces con formato de texto en la columna A para obtener el código.
reply
javier
Buenas tardes me salen dos recuadros grandes a cada lado del codigo (al principio y al final) lo que lo hace ilegible por la PDA, me podéis decir como lo soluciono?
Parece como una limitación, para que no pueda ver el código entero
Gracias
reply
Super User
Repasa si has digitalizado bien el código en la columna de barcode de la tabla, y las fórmulas están bien copiadas. Si es así, en la columna de checkeo tiene que estar ok
reply
Marco Rdz
Gracias funciono correctamente; estuve buscando y muchas paginas y ninguna me lo resolvió como esta.
reply
Super User
Gracias a ti Marco Rdz por visitar mi página y confiar en ella. Espero que le saques partido a la plantilla.
reply