Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

EAN-13 Code-Generierung via VBA

EAN-13 Code-Generierung via VBA
05.04.2019 11:38:08
Matthias
Hallo liebe Community,
aktuell hänge ich bei einem VBA-Skript fest.
Im Detail geht es darum ein Etiketten-Druckprogramm für unsere Logistik zu erstellen. Ich habe also sämtliche Artikeldaten von Access zur Verfügung. Mit Excel habe ich das Etikettenlayout erstellt und trage mittels VBA durch Eingabe der Artikelnummer sämtliche Informationen, sowie Artikelbilder, Logos, etc ein und drucke dieses automatisch aus. Mein Problem: Es wird auch ein EAN-13 Code benötigt. D.h. zuerst muss die Prüfziffer berechnet werden (das ist für mich noch umsetzbar), danach muss die Zahl in einen EAN-13 Code umgewandelt werden. Ich habe es schon mit dem Umstellen der Schriftart probiert, allerdings scheint das nicht die Lösung zu sein - unsere Scanner können diesen Code nicht einlesen. Die Ziffernfolge unterhalb des Codes steht auch in diesem Kontext als lange Ziffer zusammen (Vgl: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRgid9r-_IuK39hVCS5uwLUK5ee9Vb0In6myHgc9vqmkQ_quYZatA)
Aussehen muss das ganze aber wie folgt:
https://www.activebarcode.de/codes/imagesmainexample/ean13.gif
Kann mir jemand weiterhelfen? Vielen Dank im Voraus!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EAN-13 Code-Generierung via VBA
05.04.2019 11:49:46
SF
Hola,
ob das bei EAN-13 auch so ist, kann ich nicht sagen, aber ein Code39 Barcode hat am Anfang und Ende ein Sternchen. Dann weiß der Scanner von wo bis wo der Code geht. Eventuell ist das hier auch so.
Gruß,steve1da
AW: EAN-13 Code-Generierung via VBA
05.04.2019 11:59:22
UweD
Hallo
ich nutze das hier..
Sieht dann so aus.

Tabelle1
 ABC
14009900508476 4 *pöooöö#b-,vmn*
2  4 *pöooöö#b-,vmn*
Schriftart wird in dieser Tabelle nicht dargestellt

verwendete Formeln
Zelle Formel Bereich N/A
C1=PERSONAL.xlsb!CodeEAN13(A1)  
C2=C1  

Schriftformate  
Zelle Rot Grün Blau Color Stil Unterstreichung Effekte Durchgestrichen Schriftart
C1 Fett Kursiv       Code-EAN-VH 
Zellen mit Schriftformatierung automatisch werden nicht dargestellt
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.14 einschl. 64 Bit


Userbild
Folgender Code wird verwendet. (liegt bei mir in der PersonalXl..)
 Public Function CodeEAN13$(Text$)
    Dim ZIFF As Byte, Z As Byte, PZ As Byte
    Dim Z13%, ZS$, AB$, Wert$, j%
    If Len(Text) < 12 Or Len(Text) > 13 Then
        MsgBox "12 bzw. " & vbLf & "13 Zeichen (inkl. Prüfziffer)" & vbLf & "    erforderlich"
        Exit Function
    End If
    PZ = Modulo10(Left(Text, 12)) 'Prüfziffer ermitteln 
    If Len(Text) = 12 Then Text = Text & PZ 'Prüfziffer anhängen, wenn fehlt 
    If Right(Text, 1) <> PZ Then 'bestehende Prüfziffer checken 
        MsgBox "Prüfziffer falsch !" & vbLf & "Soll = " & PZ
        Exit Function
    End If
    Z13 = Left(Text, 1)
    CodeEAN13$ = Z13 & " *"
    ZS = Choose(Z13 + 1, "AAAAAA", "AABABB", "AABBAB", "AABBBA", "ABAABB", _
         "ABBAAB", "ABBBAA", "ABABAB", "ABABBA", "ABBABA") ' Zeichensatz A oder B 
    Z = 1
    For j = 2 To 7
        AB = Mid(ZS, Z, 1)
        ZIFF = Mid(Text, j, 1)
        Wert = IIf(AB = "A", Choose(ZIFF + 1, "p", "q", "w", "e", "r", "t", "z", "u", "i", "o") _
                           , Choose(ZIFF + 1, "ö", "a", "s", "d", "f", "g", "h", "j", "k", "l"))
        CodeEAN13$ = CodeEAN13$ & Wert
        Z = Z + 1
    Next j
    CodeEAN13$ = CodeEAN13$ & "#"
    For j = 8 To 13
        ZIFF = Mid(Text, j, 1)
        Wert = Choose(ZIFF + 1, "-", "y", "x", "c", "v", "b", "n", "m", ",", ".") ' Zeichensatz C 
        CodeEAN13$ = CodeEAN13$ & Wert
    Next j
    CodeEAN13$ = CodeEAN13$ & "* "
 End Function
 
 Public Function Modulo10(Zelle) As Byte
    'Prüfziffer nach Modulo 10, Gewichtung 3-1, rechts nach links 
    Dim bln As Boolean
    Dim intI As Integer
    Dim dblSumme As Double
    For intI = Len(Zelle) To 1 Step -1
        bln = Not bln
        If bln = True Then
            dblSumme = dblSumme + Mid(Zelle, intI, 1) * 3
        Else
            dblSumme = dblSumme + Mid(Zelle, intI, 1) * 1
        End If
    Next
    Modulo10 = IIf(dblSumme Mod 10 = 0, 0, 10 - (dblSumme Mod 10))
End Function
Ist nicht von mir, sondern auch aus dem WEB.
Benötigt wird aber auch noch eine EAN13 Schriftart
LG UweD
Anzeige
AW: EAN-13 Code-Generierung via VBA
05.04.2019 12:32:16
EtoPHG
Hallo Matthias,
Code 39 ist nicht EAN-13. Entscheidender Unterschied: Code39 kann mit einem fixen TrueTypeFont installiert und ohne VBA-Brimborium implementiert werden. Wohingegen EAN-13 eine speziellen Font braucht und v.a. die numerischen Werte der Artikelnummer in umgerechnet werden müssen, damit die richtigen Barcodeteile in der richtigen Reihenfolge ausgewählt und zusammengestellt werden. D.h. EAN-13 ist im Gegensatz zu Code39 ein dynamischer Code! Mehr Infos unter diesem Link
Gruess Hansueli

9 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige