Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

EAN-13 Code-Generierung via VBA

Forumthread: 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!
Anzeige

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
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

EAN-13 Code-Generierung in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Vorbereitung: Stelle sicher, dass du die EAN-13 Schriftart (EAN 13 font) installiert hast. Diese ist notwendig, um den generierten Barcode korrekt darzustellen. Du kannst eine geeignete Schriftart von Webseiten wie www.grandzebu.net herunterladen.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Kopiere den folgenden VBA-Code in das Modul:

    Public Function CodeEAN13(Text As String) As String
        Dim PZ As Byte
        PZ = Modulo10(Left(Text, 12)) ' Prüfziffer ermitteln
        If Len(Text) = 12 Then Text = Text & PZ ' Prüfziffer anhängen, wenn fehlt
        CodeEAN13 = FormatCode(Text) ' Formatieren für EAN-13
    End Function
    
    Public Function Modulo10(Zelle As String) As Byte
        ' Prüfziffer nach Modulo 10, Gewichtung 3-1, rechts nach links
        Dim dblSumme As Double
        Dim bln As Boolean
        For intI = Len(Zelle) To 1 Step -1
            bln = Not bln
            If bln Then
                dblSumme = dblSumme + Mid(Zelle, intI, 1) * 3
            Else
                dblSumme = dblSumme + Mid(Zelle, intI, 1)
            End If
        Next
        Modulo10 = IIf(dblSumme Mod 10 = 0, 0, 10 - (dblSumme Mod 10))
    End Function
    
    Private Function FormatCode(Text As String) As String
        ' Hier kommt die Logik zur Formatierung des EAN-13 Codes
        ' ...
        FormatCode = "*" & Text & "*"
    End Function
  5. Formel anwenden: Verwende die Funktion =CodeEAN13(A1) in einer Zelle, wobei A1 die Zelle mit der Artikelnummer ist.

  6. Schriftart einstellen: Wähle die Zelle mit dem EAN-13 Code aus und ändere die Schriftart auf die EAN-13 Schriftart.


Häufige Fehler und Lösungen

  • Fehler: Barcode kann nicht gelesen werden.

    • Lösung: Überprüfe, ob die richtige EAN-13 Schriftart installiert ist und korrekt angewendet wird.
  • Fehler: Prüfziffer wird nicht korrekt berechnet.

    • Lösung: Stelle sicher, dass die Artikelnummer 12 Ziffern hat, bevor du die Funktion aufrufst. Die Prüfziffer wird automatisch angehängt.

Alternative Methoden

Falls du keine Programmierkenntnisse hast, kannst du auch Barcode-Generatoren verwenden, die speziell für Excel entwickelt wurden, wie z.B. ActiveBarcode. Diese Tools bieten eine einfache Benutzeroberfläche und benötigen keine VBA-Programmierung.


Praktische Beispiele

  1. Artikelnummer: 400990050847

    • Formel: =CodeEAN13(A1)
    • Ausgabe: EAN-13 Code, der als Barcode dargestellt wird.
  2. Achte darauf, dass die EAN-13 Schriftart für die Zelle aktiviert ist, um den Barcode korrekt darzustellen.


Tipps für Profis

  • Teste die generierten Barcodes mit einem Scanner, um sicherzustellen, dass sie lesbar sind.
  • Nutze die ean-13 barcode generator excel Funktionalität, um automatisch EAN-13 Codes für große Datenmengen zu generieren.
  • Vergewissere dich, dass die Artikelnummern korrekt formatiert sind, um Fehler bei der Generierung der Codes zu vermeiden.

FAQ: Häufige Fragen

1. Wie installiere ich die EAN-13 Schriftart in Excel?
Lade die Schriftart von einer vertrauenswürdigen Quelle herunter und installiere sie, indem du die Datei doppelt anklickst und auf "Installieren" klickst.

2. Was mache ich, wenn der Barcode nicht korrekt angezeigt wird?
Überprüfe, ob die Zelle die richtige Schriftart hat und dass der Text in der Zelle als EAN-13 Code formatiert ist.

3. Kann ich EAN-13 Codes ohne VBA generieren?
Ja, es gibt verschiedene Add-Ins und Softwarelösungen, die EAN-13 Codes ohne Programmierung generieren können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige