Notifications
Clear all

Código de Barras EAN13

9 Posts
3 Usuários
0 Reactions
3,333 Visualizações
(@baroka)
Posts: 5
Active Member
Topic starter
 

Caros, tenho uma planilha com vários produtos e seus respectivos nºs de código de barras.
Gostaria que de acordo com o valor inserido em uma célula mostrasse o código de barras na outra. O problema é que já procurei em vários sites e foruns mas ainda não encontrei uma forma de gerar no excel um código de barras do tipo EAN13 que seja válido.
Já baixei varios tipos de fontes mas nenhuma que o leitor reconheça.
Encontrei um Add-in (StrokeScribe) mas tambem não consegui implementar ou manipular.

Alguma solução?

 
Postado : 16/11/2015 12:43 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

No anexo tem a fonte Ean13, instale e faça o teste com seu leitor.

Click em se a resposta foi util!

 
Postado : 16/11/2015 1:16 pm
selmo
(@selmo)
Posts: 236
Estimable Member
 

Cara, tive o mesmo problema recentemente. E não faz ideia de como isso é simplês brother. É só pesquisar no google "Fonte EAN13" e instalar normalmente, mais tem um macete que até então eu não sabia. Recentemente fui promovido a supervisor logístico e um novo mundo se abriu para mim kkkkkk. Então, é só digitar o código em uma celula e alterar a fonte para EAN13, mais ae vem a pegadinha, para um leitor de código qualquer identificar o código, é nescessário que o seu código esteja entre asteriscos "*", por exemplo :

*7895155420888*

Feito isso é só imprimir e aproveitar o/

"A mente que se abre a uma nova ideia jamais voltará ao seu tamanho original."
Albert Einstein

 
Postado : 16/11/2015 1:21 pm
(@baroka)
Posts: 5
Active Member
Topic starter
 

Basole, vc é o cara
Deu certo, era isso mesmo

 
Postado : 16/11/2015 2:52 pm
(@baroka)
Posts: 5
Active Member
Topic starter
 

Basole, apareceu um erro no calculo do digito verificador
Para o código 7898152189840 está aparecendo como 7898152189841; está trocando o "0" pelo "1".
O meu leitor não reconhece como um código válido

 
Postado : 24/11/2015 8:20 am
Basole
(@basole)
Posts: 487
Reputable Member
 

É realmente esta função da planilha, está erRanDo nos calculos do digito verificador rsssss..
Por favor, substitua a funcao Ean13 abaixo pela a sua, e faça os testes:

Public Function ean13$(chaine$)
    Dim i%, checksum%, first%, CodeBarre$, tableA As Boolean
    ean13$ = ""
    If Len(chaine$) = 12 Then
        For i% = 1 To 12
            If Asc(Mid$(chaine$, i%, 1)) < 48 Or Asc(Mid$(chaine$, i%, 1)) > 57 Then
                i% = 0
                Exit For
            End If
        Next
        If i% = 13 Then
            For i% = 2 To 12 Step 2
                checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
            Next
            checksum% = checksum% * 3
            For i% = 1 To 11 Step 2
                checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
            Next
            chaine$ = chaine$ & (10 - checksum% Mod 10) Mod 10
            CodeBarre$ = Left$(chaine$, 1) & Chr$(65 + Val(Mid$(chaine$, 2, 1)))
            first% = Val(Left$(chaine$, 1))
            For i% = 3 To 7
                tableA = False
                Select Case i%
                Case 3
                    Select Case first%
                    Case 0 To 3
                        tableA = True
                    End Select
                Case 4
                    Select Case first%
                    Case 0, 4, 7, 8
                        tableA = True
                    End Select
                Case 5
                    Select Case first%
                    Case 0, 1, 4, 5, 9
                        tableA = True
                    End Select
                Case 6
                    Select Case first%
                    Case 0, 2, 5, 6, 7
                        tableA = True
                    End Select
                Case 7
                    Select Case first%
                    Case 0, 3, 6, 8, 9
                        tableA = True
                    End Select
                End Select
                If tableA Then
                    CodeBarre$ = CodeBarre$ & Chr$(65 + Val(Mid$(chaine$, i%, 1)))
                Else
                    CodeBarre$ = CodeBarre$ & Chr$(75 + Val(Mid$(chaine$, i%, 1)))
                End If
            Next
            CodeBarre$ = CodeBarre$ & "*"
            For i% = 8 To 13
                CodeBarre$ = CodeBarre$ & Chr$(97 + Val(Mid$(chaine$, i%, 1)))
            Next
            CodeBarre$ = CodeBarre$ & "+"
            ean13$ = CodeBarre$
        End If
    End If
End Function

Click em se a resposta foi util!

 
Postado : 24/11/2015 9:50 am
(@baroka)
Posts: 5
Active Member
Topic starter
 

Deu certo não
O campo que recebe o código fica em branco

 
Postado : 24/11/2015 11:40 am
Basole
(@basole)
Posts: 487
Reputable Member
 

Bom, aqui pra mim esta funcionando corretamente.

Segue o cod. na planilha em anexo.

Click em se a resposta foi util!

 
Postado : 24/11/2015 12:08 pm
(@baroka)
Posts: 5
Active Member
Topic starter
 

Descobri pq a minha não estava dando certo.
No código que você enviou, o digito verificador é calculado no código e no meu já fazia parte do numero. Foi só tirar o ultimo numero da sequencia e deu certo

Vlw de novo

 
Postado : 24/11/2015 12:51 pm