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
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
Truetype-Font installieren: Um EAN 128 in Excel anzuzeigen, musst du die Schriftart code128.ttf
installieren. Diese kannst du von verschiedenen Webseiten herunterladen.
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
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)
.
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.
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.
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.
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.
Barcode-Druck: Nachdem du die Barcodes erzeugt hast, kannst du sie direkt aus Excel heraus drucken, um Etiketten zu erstellen.
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.
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.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen