Anexo 1

Gestión de Base de Datos

Indice

INTRODUCCIÓN

El codigo de barras

Nomenclatura básica

Códigos de barras lineales

GS1


1.-   INTRODUCCIÓN

El uso de codigos de barras se ha extendido, todos los artículos tienen estos codigos de barras, este anexo se ha creado para satisfacer una necesidad de comprender y crear códigos de barras que pueden ser incluidos en los negocios en que se implementen las bases de datos, para su registro y gestión de datos.

Historia

La primera patente de código de barras fue otorgada el 7 octubre de 1952 (US Patent #2,612,994) por los inventores Joseph Woodland, Jordin Johanson y Bernard Silver en Estados Unidos. La implementación fue posible gracias al trabajo de los ingenieros Raymond Alexander y Frank Stietz. El resultado de su trabajo fue un método para identificar los vagones del ferrocarril utilizando un sistema automático. Sin embargo, no fue hasta 1966 cuando el código de barras comenzó a utilizarse comercialmente y recién tuvo éxito comercial en 1980.

Situación en el producto

Los códigos de barras se imprimen en los envases, embalajes o etiquetas de los productos. Entre sus requisitos básicos se encuentran la visibilidad y fácil legibilidad por lo que es imprescindible un adecuado contraste de colores.

En este sentido, el negro sobre fondo blanco es el más habitual encontrando también azul sobre blanco o negro sobre marrón en las cajas de cartón ondulado. El código de barras lo imprimen los fabricantes (o, más habitualmente, los fabricantes de envases y etiquetas por encargo de los primeros) y, en algunas ocasiones, los distribuidores.

Para no entorpecer la imagen del producto y sus mensajes promocionales, se recomienda imprimir el código de barras en lugares discretos tales como los laterales o la parte trasera del envase. Sin embargo, en casos de productos pequeños que se distribuye individualmente no se puede evitar que ocupe buena parte de su superficie: rotuladores, barras de pegamento, entre otros.

Ventajas del código de barras

Entre todas las primeras justificaciones de la implantación del código de barras se encontraron la necesidad de agilizar la lectura de los artículos en las cajas y la de evitar errores de digitación. Otras ventajas que se pueden destacar de este sistema son: 

La información se procesa y almacena con base en un sistema digital binario donde todo se resume a sucesiones de unos y ceros. La memoria y central de decisiones lógicas es un computador electrónico del tipo universal, disponible ya en muchas empresas comerciales y generalmente compatible con las distintas marcas y modelos de preferencia en cada país. Estos equipos permiten también interconectar (bases de datos distribuidas) entre sí distintas sucursales o distribuidores centralizando toda la información. Ahora el distribuidor puede conocer mejor los parámetros dinámicos de sus circuitos comerciales, permitiéndose mejorar el rendimiento y las tomas de decisiones, ya que conocerá con exactitud y al instante toda la información proveniente de las bocas de venta estén o no en su casa central.

Conoce los tiempos de permanencia de depósito de cada producto y los días y horas en que los consumidores realizan sus rutinas de compras, pudiendo entonces decidir en qué momento debe presentar ofertas, de qué productos y a qué precios.

El código de barras

Esta basado en la representación de un conjunto de líneas paralelas de distinto grosor, color y espaciado que en su conjunto contienen una determinada información, es decir, las barras y espacios del código representan pequeñas cadenas de caracteres. 

De este modo, el código de barras permite reconocer rápidamente un artículo de forma única, global y no ambigua y realizar inventario o consultar sus características.

La correspondencia o mapeo entre la información y el código que la representa se denomina "simbología".

Estas simbologías pueden ser clasificadas en grupos atendiendo a dos criterios diferentes:

Primer Grupo

A.    Continua  o  discreta: una simbología continua es aquella en la que los caracteres individuales no se pueden interpretar por sí mismos. Esto es debido al hecho de que los caracteres comienzan con una barra y finalizan con un espacio que "termina" en la barra inicial del siguiente carácter. Un carácter no puede ser interpretado individualmente, ya que no hay manera de conocer el ancho del último espacio sin saber dónde empieza el siguiente carácter. Las simbologías continuas normalmente implementan algún tipo de barra de terminación especial o una secuencia de terminación, tal que el último espacio del último carácter de datos acaba mediante la barra de terminación. 

B.    Una simbología discreta es aquella en la que todos y cada uno de los caracteres codificados en el símbolo pueden ser interpretados individualmente sin tener en cuenta al resto del código de barras. Estas simbologías tienen caracteres que comienzan y terminan con una barra, y están separados por cierta cantidad de espacio en blanco. El espaciado entre caracteres no lleva ninguna información, su único cometido es el de separar los mismos.

Segundo Grupo

A.    Bidimensional o  multidimensional: en las simbologías bidimensionales las barras pueden ser anchas o estrechas.
B.    Las multidimensionales son  múltiplos  de una anchura determinada (X). De esta forma, se emplean barras con anchura X, 2X, 3X,Y 4X

Nomenclatura básica

Módulo: es la unidad mínima o básica de un código. Las barras y espacios están formados por un conjunto de módulos.

Barra: el elemento oscuro dentro del código. Se hace corresponder con el valor binario 1.

Espacio: el elemento claro dentro del código. Se hace corresponder con el valor binario 0.

Carácter: formado por barras y espacios. Normalmente se corresponde con un carácter alfanumérico.


Códigos de barras lineales

Algunos de los códigos de barra lineales o unidimensionales más habituales son:

EAN

Code 128

Code 39

Code 93

UPC

EAN-13 y EAN-8

 

EAN - European Article Number”, pero cuando se habla de códigos EAN en general, suele hacer referencia al código EAN-13. 

Un número de 13 cifras que sirve para identificar cada producto de forma individual en todos los países del mundo.

Code 128 es un código de barras de alta densidad, usado ampliamente para la  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.

Code 39 Capaz de representar letras mayúsculas, números y algunos caracteres especiales, como el  espacio. Posiblemente, el inconveniente más grave de este código es su baja densidad de información pues se requiere más espacio para codificar datos en Code 39 que  en Code 128. Esto significa que resulta dificultoso etiquetar objetos demasiado pequeños con este código. A pesar de eso, este código es ampliamente utilizado y puede ser interpretado por casi cualquier lector de códigos de barras.

Code 93, Es usado para aumentar la densidad de datos, Es alfanumérico, de longitud variable.

Cada símbolo del código incluye dos caracteres de checksum

UPC El código de barras UPC-E es un  código de producto universal, el código de barras más utilizado en los Estados Unidos. UPC-E es la versión condensada del código de barras numérico UPC-A de tamaño estándar, usado en tiendas de abarrotes y otros establecimientos minoristas en todo el país.


EAN 13 que se refiere al Número de Artículo Internacional (originalmente European Article Number). A diferencia del Código UPC que utiliza 12 dígitos, este sistema cuenta con 13 dígitos y actualmente se puede encontrar en cualquier producto. Algunas veces a este Código también se le llama GTIN o GTIN13 (Global Trade Identifier).

 EAN 8 que permite codificar ocho dígitos. Estos dígitos están divididos en dos conjuntos de cuatro cada uno, que significan: dos números indicadores que señalan el país en donde se emitió el Código de Barras; luego, cinco dígitos de datos que identifican brevemente el producto; seguidos finalmente por un número de verificación. Como en el EAN-13, no se pueden usar letras ni otros caracteres aparte de los numéricos.

Las ventajas del Código EAN 8, es que ahorra espacio y proporciona un Código de identificación preciso para productos como dulces, cigarros u otros artículos pequeños o envueltos de manera individual. Al mismo tiempo, el dígito de verificación ayuda a asegurar la exactitud cuando se ingresa el Código de forma manual.

GS1 significa Estándares Mundiales Uno (Global Standard One)

Esta organización puede ser considerada primordialmente como la que administra los estándares de designar los varios sistemas de números en los cuáles el comercio mundial depende. Consultar gs1mexico.

El sistema GS1 nombra a estos códigos (EAN y UPC) como un Global Trade Item Number (GTIN), los cuales se usan para la identificación de Artículos Comerciales y/o servicios sobre los cuales existe la necesidad de codificar información predefinida (características del producto y/o servicio

su pagina es: https://www.gs1mexico.org/es/

Diseño  y estructura

EAN 13



El código EAN más usual es EAN-13, constituido por trece (13) dígitos y con una estructura dividida en cuatro partes:

Los primeros dígitos del código de barras EAN identifican el país que otorgó el código, no el país de origen del producto. Por ejemplo, en Chile su código es el 780, Mexico es el 750.

Lista de los códigos de país del EAN-13, GTIN-13, algunos de ellos, también existe un programa generador de Codebar para mas información en la pagina:

https://es.activebarcode.com/codes/ean13_laenderpraefixe

Código del condado    País
00 - 13                        USA y Canadá
20 - 29                        Uso interno
30 - 37                        Francia
380                             Bulgaria
383                             Eslovenia
385                             Croacia
387                             Bosnia y Herzegovina
400 - 440                    Alemania

......

740 - 745                    América Central (Guatemala, el Salvador, Honduras, Nicaragua, Costa Rica, Panamá)
746                             República Dominicana
750                             México
759                             Venezuela



Composición del código:

Código del país: en donde radica la empresa, compuesto por tres (3) dígitos.

Código de empresa: es un número compuesto por cuatro o cinco dígitos, que identifica al propietario de la marca.

Código de producto: completa los doce primeros dígitos, el treceavo dígito debe de calcular de calcular con lo siguiente:

Dígito de control: para comprobar el dígito de control (por ejemplo, inmediatamente después de leer un código de barras mediante un escáner), numeramos los dígitos de derecha a izquierda.

A continuación se suman los dígitos de las posiciones impares, el resultado se multiplica por 3, y se le suman los dígitos de las posiciones pares.

Se busca decena inmediatamente superior y se le resta el resultado obtenido. El resultado final es el dígito de control.

Si el resultado es múltiplo de 10 el dígito de control será cero (0).

Por ejemplo, para 123456789041 el dígito de control será:

Numeramos de derecha a izquierda: 140987654321 (véase que se invierte la posición de los números)

Suma de los números en los lugares Impares: 1 + 0 + 8 + 6 + 4 + 2 = 21

Multiplicado (por 3):21 × 3 = 63

Suma de los números en los lugares pares: 4 + 9 + 7 + 5 + 3 + 1 = 29

Suma total: 63 + 29 = 92

Decena inmediatamente superior: 100

Dígito de control:100 - 92 = 8

El código quedará así: 1234567890418


Si se desea realizar desde SQL, en la aplicación seria de esta forma:

DECLARE @initialBarcode VARCHAR(13), @auxBarcode VARCHAR(13), @finalBarcode VARCHAR(13)
SET @auxBarcode =  REVERSE(@initialBarcode)
DECLARE @verifierCode INT = 0
SELECT 
 @verifierCode = CASE 
  WHEN i % 2 = 0 THEN 
   @verifierCode + SUBSTRING(@auxBarcode, i, 1) 
  ELSE
   @verifierCode + (SUBSTRING(@auxBarcode, i, 1) * 3)
 END
FROM  dbo.NumbersTable(1,12,1) --- FALTA ESTO EN EL SQL
SET @verifierCode = RIGHT((10 - RIGHT(@verifierCode,1)),1)
SET @finalBarcode = CONCAT(@initialBarcode, @verifierCode)
RETURN @finalBarcode


Para realizarlo en Excel:

El ejemplo calcula un EAN13 para la celda A1, si fuera 123456789041 añadiría un 8 como dígito de control

=SI(LARGO(A1)>12,"MAS de 13",SI(ESERROR(A1*1),"NO NUMERICO",CONCATENAR(REPETIR(0,12-LARGO(A1)),A1)&RESIDUO((10-(DERECHA(((SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),2,1)),"0")+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),4,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),6,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),8,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),10,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),12,1)),"0")))*3)+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),1,1)),"0")+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),3,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),5,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),7,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),9,1)),"0"))+(SI.ERROR(VALOR(EXTRAEB(TEXTO(A1,0),11,1)),"0"))),1))),10)))

Se cambia la celda A1 Por la posición que se asigne para el código, esto solo es para calcular el dígito verificador, o de control.

Ya que tenemos el calculo del código, solo necesitas tener la fuente adecuada para cada caso de EAN 13, al final de esta pagina están los archivos de las fuentes para EAN 13, que puedes descargar, descomprimir, y solo copiarlos a la carpeta C:\Windows\fonts, es para cualquier versión de Windows.

EAN 12



Este código es asignado por GS1 México a aquellas compañías que les sea solicitado o requerido por sus socios comerciales y/o exporten sus productos a Estados Unidos y Canadá. La asignación de este número base varía de acuerdo a la necesidad de codificación de las empresas. La Longitud de este número base será desde seis hasta ocho posiciones.

EAN 8



Utilizado en artículos muy pequeños donde, por su tamaño y sistema de impresión, no puede aplicarse un EAN-13. La asignación de este código corto en su totalidad la hace GS1 México y se requiere de un estudio para determinar si es viable su asignación.

GTIN-8



es utilizado también en artículos muy pequeños que por su tamaño y sistema de impresión no puede aplicarse en su versión larga.

CODE 128

 ESTRUCTURA DEL EAN/UCC-128

Todas las aplicaciones del código EAN/UCC 128, presentan una estructura del símbolo similar, la cual se compone de cinco elementos básicos: 

El código de entrada (carácter de inicio y código de función 1)

La comunicación (IA y campo de datos)

El dígito verificador del símbolo

El carácter de salida

Las zonas mudas.




El carácter de control del símbolo se obtiene de acuerdo con el algoritmo de cálculo Módulo 103, se utiliza como un dígito de comprobación en este código de barras. Según la tabla de símbolos del código de barras Code-128, a cada carácter se le asigna un valor correspondiente. Luego, el factor de ponderación 1, 2, 3,…,n se asigna a cada carácter, excepto el símbolo Stop y el carácter de control . Al mismo tiempo, el factor de ponderación igual a uno se asigna al símbolo «Start» y al primer carácter que le sigue. El dígito de comprobación se calcula como la suma de los productos de los factores de ponderación por los valores correspondientes al módulo 103. El carácter de control está situado entre el último carácter de datos y el símbolo «Stop».

Aqui una pagina que da detalles sobre code 128 : https://www.fast-report.com/es/blog/show/create-code128-barcode/

Code 128 Auto puede codificar todo el conjunto de caracteres ASCII. Los 3 juegos de caracteres del Código 128 se cambian:

Code 128A: contiene letras mayúsculas y caracteres de control.

Code 128B: contiene letras mayúsculas y minúsculas.

Code 128C: especialmente optimizado para números.

Caracteres válidos:

0123456789!"#$%&''()*+,-./:;<=>?@[\]^_`{|} 

[Space]ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz

Caracteres de control:  ASCII 1-31,127

Code 128A es variable sin una longitud fija.

Code 128 es una simbología de alta densidad muy eficaz que permite la codificación de datos alfanuméricos. Incluye protección de verificación a través de un dígito de suma de control y una verificación de paridad de bytes. Esta simbología se ha implementado en muchas aplicaciones en las que se debe codificar una cantidad relativamente grande de datos en un espacio relativamente pequeño.

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.

En este sitio url: http://barcodees.com/Code128OnlineEs.asp se puede descargar el generador de Code 128, en este momento esta solo en Ingles, se puede realizar en linea o descargando el programa, tambien se pueden generar los demas codigos.

Ejemplo de la  simbología EAN/UCC-128





Carácter de inicio: Este carácter determina el tipo o conjunto de caracteres que se representan. En la simbología EAN/UCC puede ser:

(véase la sección del código en color verde)



Inicio A: Carácter que permite que se simbolicen caracteres alfanuméricos ASCII en mayúsculas y caracteres de puntuación.

Inicio B: Carácter que permite que se simbolicen caracteres alfanuméricos ASCII en mayúsculas y minúsculas además de caracteres de puntuación.

Carácter que permite simbolizar única y exclusivamente caracteres numéricos en pares de 00 a 99, de tal forma que dos dígitos de información numérica son representados empleando tan solo un carácter de símbolo. El estándar del código dice que cada vez que el código sea exclusivamente numérico debe utilizarse un inicio C, para de esta forma reducir el tamaño del símbolo.

Carácter FNC1: También llamado carácter de función 1, este carácter junto con el de inicio define la simbología estándar UCC/EAN-128. De igual forma este carácter se usa como separador entre campos, cuando en un símbolo se concatenan varios campos de longitud variable.



Simbolización de datos del código: Los datos simbolizados corresponden a toda la información relacionada con el producto/servicio/localización.



Carácter de Control: Este es un carácter de chequeo calculado a partir de los demás caracteres del símbolo de acuerdo con un algoritmo preestablecido. Su uso es obligatorio y se emplea para verificar que el código ha sido leído y compuesto correctamente.



Carácter final: Este es un carácter auxiliar que indica el final del símbolo del código de barras. Este se ubica al extremo derecho del símbolo.

Aqui econtraras el video de lo que se explica a continuacion

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 descomprima e instálela en su carpeta de fuentes, solo es cuestión de descargar el archivo, descomprimido, y copiarlo en C:\windows\font.

Archivo de fuente Code 128 se puede descargar desde este sitio https://fontmeme.com/fuentes/fuente-code-128/ o aqui  code-128.zip

PASO DOS

Asegúrese de que tiene la pestaña de programador habilitada en Excel.

Si no es así, habilítela siguiendo estas instrucciones:
La pestaña Programador no se muestra de forma predeterminada, pero puede agregarla a la cinta de opciones.

En la pestaña Archivo , vaya a Opciones > Personalizar cinta de opciones.

En Personalizar la cinta de opciones y Pestañas principales, active la casilla Programador.

Después de mostrar la pestaña, la pestaña Desarrollador permanecerá visible, a menos que desactive la casilla o tenga que reinstalar un programa de Microsoft.

La pestaña Desarrollador es el lugar al que debes ir cuando quieras hacer o usar lo siguiente:
Escribir macros.
Ejecutar macros previamente grabadas.
Usar comandos XML.
Usar controles ActiveX.
Cree aplicaciones para usar con programas de Microsoft Excel.
Usar controles de formularios en Microsoft Excel.
Entre otras cosas mas.

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:

Barcode        Barcode String        Barcode Presentation    Check

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

Ahora pegue el siguiente código (este código esta clasificado como GNU, no hay restricciones de uso)

------------------------------------------------------------------------------------------------------------------

Option Explicit
Public Function Code128(SourceString As String)
     'This code is not guaranteed to be error free.  No warranty is implied or expressed. Use at your own risk and carry out your own testing
    'This function is governed by the GNU Lesser General Public License (GNU LGPL) Ver 3
    'Input Parameters : A string
    'Return : 1. An encoded string which produces a bar code when dispayed using the CODE128.TTF font
    '         2. An empty string if the input parameter contains invalid characters
    Dim Counter As Integer
    Dim CheckSum As Long
    Dim mini As Integer
    Dim dummy As Integer
    Dim UseTableB As Boolean
    Dim Code128_Barcode As String
    If Len(SourceString) > 0 Then
        'Check for valid characters
        For Counter = 1 To Len(SourceString)
            Select Case Asc(Mid(SourceString, Counter, 1))
                Case 32 To 126, 203
                Case Else
                    MsgBox "Invalid character in barcode string." & vbCrLf & vbCrLf & "Please only use standard ASCII characters", vbCritical
                    Code128 = ""
                    Exit Function
            End Select
        Next
        Code128_Barcode = ""
        UseTableB = True
        Counter = 1
        Do While Counter <= Len(SourceString)
            If UseTableB Then
                'Check if we can switch to Table C
                mini = IIf(Counter = 1 Or Counter + 3 = Len(SourceString), 4, 6)
                GoSub testnum
                If mini% < 0 Then 'Use Table C
                    If Counter = 1 Then
                        Code128_Barcode = Chr(205)
                    Else 'Switch to table C
                        Code128_Barcode = Code128_Barcode & Chr(199)
                    End If
                    UseTableB = False
                Else
                    If Counter = 1 Then Code128_Barcode = Chr(204) 'Starting with table B
                End If
            End If
            If Not UseTableB Then
                'We are using Table C, try to process 2 digits
                mini% = 2
                GoSub testnum
                If mini% < 0 Then 'OK for 2 digits, process it
                    dummy% = Val(Mid(SourceString, Counter, 2))
                    dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 100)
                    Code128_Barcode = Code128_Barcode & Chr(dummy%)
                    Counter = Counter + 2
                Else 'We haven't got 2 digits, switch to Table B
                    Code128_Barcode = Code128_Barcode & Chr(200)
                    UseTableB = True
                End If
            End If
            If UseTableB Then
                'Process 1 digit with table B
                Code128_Barcode = Code128_Barcode & Mid(SourceString, Counter, 1)
                Counter = Counter + 1
            End If
        Loop
        'Calculation of the checksum
        For Counter = 1 To Len(Code128_Barcode)
            dummy% = Asc(Mid(Code128_Barcode, Counter, 1))
            dummy% = IIf(dummy% < 127, dummy% - 32, dummy% - 100)
            If Counter = 1 Then CheckSum& = dummy%
            CheckSum& = (CheckSum& + (Counter - 1) * dummy%) Mod 103
        Next
        'Calculation of the checksum ASCII code
        CheckSum& = IIf(CheckSum& < 95, CheckSum& + 32, CheckSum& + 100)
        'Add the checksum and the STOP
        Code128_Barcode = Code128_Barcode & Chr(CheckSum&) & Chr$(206)
    End If
    Code128 = Code128_Barcode
    Exit Function
testnum:
        'if the mini% characters from Counter are numeric, then mini%=0
        mini% = mini% - 1
        If Counter + mini% <= Len(SourceString) Then
            Do While mini% >= 0
                If Asc(Mid(SourceString, Counter + mini%, 1)) < 48 Or Asc(Mid(SourceString, Counter + mini%, 1)) > 57 Then Exit Do
                mini% = mini% - 1
            Loop
        End If
        Return
End Function

------------------------------------------------------------------------------------------------------------------------------------------

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("Â",C2,1)),"Equivocado","OK")


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 "Libre barcode 128 Text" para poder visualizar mejor los códigos de barras.

Guarda el libro Excel, con formatao para macros.

Si esto no funciona, es posible que deba cerrar y volver a abrir Excel en esta etapa


Archivos de fuente 3of9_barcode.zip se puede descargar aqui  3of9_barcode.zip

Archivos de fuente ean13-maisfontes.636e.zip se puede descargar aqui ean13-maisfontes.636e.zip

Archivos de fuente ean-13b-maisfontes.9c46.zip se puede descargar aqui ean-13b-maisfontes.9c46.zip

Archivos de fuente ean-13-maisfontes.6be5.zip se puede descargar aqui ean-13-maisfontes.6be5.zip



Referencias y recuperacion de :

https://es.activebarcode.com/
https://www.gs1mexico.org/es/
Danysoft
https://barcode.tec-it.com/es/Code128
http://barcodees.com/Code128OnlineEs.asp
https://fontmeme.com/fuentes/fuente-code-128/