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

Forumthread: EAN-Code 128

EAN-Code 128
04.09.2018 19:56:05
Andre
Hallo
Ich möchte das der Zellinhalt von B3 in B5 als EAN 128 angezeigt wird geht das überhaupt mit VBA
für eure Hilfe bedanke ich mich schon im voraus
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: EAN-Code 128
04.09.2018 20:42:50
onur
Klar müsste es gehen, wenn du "EAN 128" als Truetype-Font installierst.
Font code128.ttf installieren genügt nicht,
04.09.2018 21:40:29
EtoPHG
onur,
BarCodes 128 (A,B,C) werden abhängig von der Inhaltsreihenfolge dynamisch zusammengestellt. Dies z.B. im Unterschied zu Code-39, bei dem eine 1:1 Abhängigkeit zwischen Zeichen oder Ziffer und der Leerstelle-Balken-Kombination besteht. Code-39 braucht darum wesentlich mehr Platz in der Breite, als ein Code-128, welcher zu den 'high-density' Barcodes gehört. Kommt z.B. die Ziffernfolge 12 im Code-128 vor, wird je nach Position im Inhalt eine andere Kombination aus Leerstelle und Balken erzeugt. Insgesamt gibt es 107 verschiedene Leerstelle-Balken Kombinationen, welche aus dem Inhalt 'errechnet' werden müssen!
siehe : Le code 128 Hier kann der code128.ttf (Truetype-Font) und ein entsprechendes VBA Makro zur Erstellung frei heruntergeladen werden. Die UDF kann dann als Formel auf Zellen angewendet werden =code128(A3). Diese Zellen müssen mit Schriftart Code 128 formatiert werden.
Gruess Hansueli
Anzeige
AW: Font code128.ttf installieren genügt nicht,
05.09.2018 06:44:46
onur
Mein "Wenn" war ja auch causal und nicht temporal gemeint.
AW: Font code128.ttf installieren genügt nicht,
05.09.2018 10:17:10
UweD
Hallo
ich habe den "le Code" nicht gelesen...
ich verwende diesen hier (auch aus dem Netz)
Option Explicit

'Funktion zum ermitteln der Prüfziffer für den Barcode Code128. 
'Getestet mit Tabellendokumenten in OpenOffice 3 und MS-Office 2000. 
'Bei Fehlern wird kein Wert zurückgegeben, sonst der errechnete Text. 
'Nach der korrekten Integration des Makros in ein Tabellendokument 
'kann das Makro z.B. mit der Formel =code128(A1) aufgerufen werden, 
'wenn in der Zelle A1 der Ausgangstext steht. 
'(C) 2009 - www.matsel.de - webmaster@matsel.de - Letzte Änderung 26.06.2009 
Public Function Code128$(Text$)
    Dim x%, y%, fehlzeichen%, checksumme&
    Dim Zeichensatz As Variant
    Zeichensatz = Array("ß", "!", Chr(34), "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "´", "ä", "ö", "ü", "Ä", "Ö", "Ü", "µ", "À", "Á", "Â", "È")
    Code128$ = ""

    'Die Maximallänge des Textes wird auf 40 Zeichen begrenzt, um fehlerhafte Scans zu vermeiden. 
    If (Len(Text$) > 40) Then
        x% = MsgBox("Der zu codierende Text ist " & Str(Len(Text$) - 40) & " Zeichen zu lang." & Chr(13) & "Um Fehler beim Scannen des Barcodes zu vermeiden, ist dieses Makro auf 40 Zeichen begrenzt.", 64, "Barcode-Generator (Code 128)")
        Exit Function
    End If

    'Wenn kein Text zu codieren ist, dann Funktion beenden. 
    If (Len(Text$) = 0 Or Text$ = "0") Then
        Exit Function
    End If

    'Testen, ob im Ausgangstext ein ß enthalten ist 
    If (InStr(Text$, "ß") <> 0) Then
        x% = MsgBox("Das Zeichen ß kann nicht dargestellt werden.", 64, "Barcode-Generator (Code 128)")
        Exit Function
    End If

    'Das Startzeichen hat den Wert 104 
    checksumme& = 104

    'Leerzeichen durch ß ersetzen 
    Text$ = Replace(Text$, " ", "ß")


    'Prüfziffer berechnen 
    For x% = 1 To Len(Text$)
        fehlzeichen% = 1
        For y% = 0 To 94
            If (Mid$(Text$, x%, 1) = Zeichensatz(y%)) Then
                fehlzeichen% = 0
                checksumme& = checksumme& + (x% * y%)
                Exit For
            End If
        Next y%
        If fehlzeichen% = 1 Then
            x% = MsgBox("Das Zeichen " & Mid$(Text$, x%, 1) & " kann nicht dargestellt werden.", 64, "Barcode-Generator (Code 128)")
            Exit Function
        End If
    Next x%

    'Rest ermitteln 
    checksumme& = checksumme& Mod 103

    'Ergebnis = Startzeichen + Text + Prüfziffer + Stoppzeichen 
    Code128$ = "Á" & Text$ & Zeichensatz(checksumme&) & "È"
End Function

- in ein Standardmodul kopieren
- in A1 deinen Text
- in B1 die Formel = code128(A1)
- B1 mit einer code128schriftart formatieren und die Schriftgröße entsprechend vergrößern
Tipp:
mittig zentrieren und die Spaltenbreite größer wählen als der angezeigte Code.
Dadurch stellst du die weißen Randbereiche sicher.
Userbild
LG UweD
Anzeige
AW: Font code128.ttf installieren genügt nicht,
05.09.2018 11:04:42
Andre
Hallo UweD
LÄUFT SUPI!!!!!
DANKE IHR SEID DIE BESTEN HIER IM FORUM
ALLEN NOCHMAL VIELEN DANK FÜR EURE MÜHE
Prima! Danke für die Rückmeldung. owT
05.09.2018 14:45:37
UweD
AW: EAN-Code 128
05.09.2018 08:15:04
Andre
Hallo onur und EtoPHG
Erstmal vielen für eure Hilfe
Leider hat das alles nicht geklappt mit dem Code und der Schrift runterladen.
vielleicht mache ich auch was falsch:(
Ich habe den Code in ein Modul gespeichert und die Zelle mit Code128 formatiert.
Gebe ich eine Zahl ein wird mir zwar ein Code angezeigt nur am Anfang und am Ende stehen ein Ó
Anzeige
Kannst du die Mappe mal hochladen? (owT)
05.09.2018 10:39:48
EtoPHG

;
Anzeige

Infobox / Tutorial

EAN-Code 128 in Excel erstellen


Schritt-für-Schritt-Anleitung

  1. Truetype-Font installieren: Um EAN 128 in Excel anzuzeigen, musst du die Schriftart code128.ttf installieren. Diese kannst du von verschiedenen Webseiten herunterladen.

  2. VBA-Code einfügen: Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten. Füge in ein neues Standardmodul den folgenden VBA-Code ein:

    Option Explicit
    
    Public Function Code128$(Text$)
        Dim x%, y%, fehlzeichen%, checksumme&
        Dim Zeichensatz As Variant
        Zeichensatz = Array("ß", "!", Chr(34), "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\", "]", "^", "_", "`", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "~", "´", "ä", "ö", "ü", "Ä", "Ö", "Ü", "µ", "À", "Á", "Â", "È")
        Code128$ = ""
    
        If (Len(Text$) > 40) Then
            MsgBox "Der zu codierende Text ist " & Str(Len(Text$) - 40) & " Zeichen zu lang. Um Fehler beim Scannen des Barcodes zu vermeiden, ist dieses Makro auf 40 Zeichen begrenzt.", vbExclamation, "Barcode-Generator (Code 128)"
            Exit Function
        End If
    
        If (Len(Text$) = 0 Or Text$ = "0") Then Exit Function
    
        If (InStr(Text$, "ß") <> 0) Then
            MsgBox "Das Zeichen ß kann nicht dargestellt werden.", vbExclamation, "Barcode-Generator (Code 128)"
            Exit Function
        End If
    
        checksumme& = 104
        Text$ = Replace(Text$, " ", "ß")
    
        For x% = 1 To Len(Text$)
            fehlzeichen% = 1
            For y% = 0 To 94
                If (Mid$(Text$, x%, 1) = Zeichensatz(y%)) Then
                    fehlzeichen% = 0
                    checksumme& = checksumme& + (x% * y%)
                    Exit For
                End If
            Next y%
            If fehlzeichen% = 1 Then
                MsgBox "Das Zeichen " & Mid$(Text$, x%, 1) & " kann nicht dargestellt werden.", vbExclamation, "Barcode-Generator (Code 128)"
                Exit Function
            End If
        Next x%
    
        checksumme& = checksumme& Mod 103
        Code128$ = "Á" & Text$ & Zeichensatz(checksumme&) & "È"
    End Function
  3. Zellen formatieren: Gehe zurück zu Excel und formatiere die Zelle B1 mit der Schriftart Code 128. In A1 gib den Text ein, den du in Code 128 umwandeln möchtest, und in B1 verwendest du die Formel =Code128(A1).

  4. Anpassungen vornehmen: Stelle sicher, dass die Zelle B1 ausreichend breit ist, damit der Barcode korrekt angezeigt wird. Zentriere den Text in B1 für eine bessere Darstellung.


Häufige Fehler und Lösungen

  • Fehlerhafte Darstellung der Barcodes: Wenn am Anfang und Ende des Barcodes zusätzliche Zeichen (z.B. Ó) angezeigt werden, überprüfe, ob die Schriftart korrekt auf Code 128 eingestellt ist.

  • Zulässige Zeichen: Stelle sicher, dass dein Text nur Zeichen enthält, die im Code 128 definiert sind. Ein ß kann nicht dargestellt werden und führt zu einer Fehlermeldung.

  • VBA funktioniert nicht: Überprüfe, ob du das VBA-Makro korrekt in ein Standardmodul eingefügt hast.


Alternative Methoden

  • Barcode-Generator nutzen: Es gibt verschiedene Online-Tools und Excel-Add-Ins, die Barcodes direkt generieren können, ohne dass du VBA-Code verwenden musst. Ein Beispiel ist der Excel Barcode Generator Code 128.

  • Formeln verwenden: Du kannst auch eine Excel-Formel zur Berechnung des Barcodes nutzen, jedoch ist dafür oft ein tiefes Verständnis der Barcode-Logik erforderlich.


Praktische Beispiele

  1. EAN 128 für Produkte: Du kannst eine Liste von EAN-Codes in Excel erstellen, indem du die oben beschriebene Methode anwendest. Gib die Produktnummern in A1, A2, usw. ein, und verwende die Formel in den entsprechenden B-Zellen.

  2. Barcode-Druck: Nachdem du die Barcodes erzeugt hast, kannst du sie direkt aus Excel heraus drucken, um Etiketten zu erstellen.


Tipps für Profis

  • Prüfziffer berechnen: Nutze die Funktion zur Berechnung der Prüfziffer, um sicherzustellen, dass deine Barcodes korrekt sind. Dies ist besonders wichtig für die Scanbarkeit.

  • VBA anpassen: Passe den VBA-Code an deine spezifischen Bedürfnisse an, um die Prozessgeschwindigkeit oder die Fehlerbehandlung zu optimieren.

  • Excel-Integration: Integriere den Barcode-Generator in deine bestehenden Excel-Modelle, um den Workflow zu verbessern.


FAQ: Häufige Fragen

1. Wie installiere ich die Schriftart Code 128? Lade die Schriftart code128.ttf herunter, klicke mit der rechten Maustaste darauf und wähle „Installieren“.

2. Was mache ich, wenn der Barcode nicht scannbar ist? Überprüfe, ob die Schriftart korrekt eingestellt ist und dass der Text keine ungültigen Zeichen enthält. Achte auch auf die Breite der Zelle.

3. Funktioniert dieser Prozess in allen Excel-Versionen? Ja, der beschriebene Prozess sollte in den meisten modernen Excel-Versionen funktionieren, einschließlich Excel 2010 und neuer.

4. Gibt es kostenlose Alternativen zu kostenpflichtigen Barcode-Generatoren? Ja, es gibt viele kostenlose Online-Barcode-Generatoren, die du nutzen kannst, um Barcodes zu erstellen, ohne VBA zu verwenden.

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