Erstellen Sie 128 Barcodes in Excel

Gibt es eine Möglichkeit, Barcodes (128-Standard) auf einem Mac zu erstellen, vorzugsweise über ein Add-In?

Ich brauche es, um Barcodes in Excel-Tabellen zu erstellen (oder mehr noch, ein Freund von mir braucht es).

Ich habe alle VBA-Makros und Schriftarten ausprobiert, die ich bei Google gefunden habe, aber keine liefert mir ein scanbares Ergebnis (normalerweise sind seltsame Zeichen wie ós eingemischt). Hat jemand eine funktionierende Lösung?

Wenn ich mir die Codedefinition in en.wikipedia.org/wiki/Code_128 ansehe , würde ich davon ausgehen, dass eine gewisse Menge an Skripten (entweder in Excel oder woanders) erforderlich ist, um korrekt formatierte Barcodes zu erstellen
Was sind die Gründe dafür?
Barcode ist keine 1:1-Übersetzung von einem Text/einer Zahl in eine andere Notation (was erforderlich wäre, damit eine einfache Schriftersetzung funktioniert), siehe verlinkte Wikipedia-Seite für Details.
Ganz unten auf der Wikipedia-Seite zu Code128 finden Sie unter Externe Links .... Kostenloses Excel-Makro und Schriftart für die Generierung mehrerer Barcodes 128. Hast du dir das angeschaut?

Antworten (4)

Sie können die hier heruntergeladene kostenlose Barcode-Schriftart ausprobieren: http://www.barcodelink.net/barcode-font.php und in /Library/Fonts.

Um es zu verwenden, wählen Sie einfach die Schriftart** in einer beliebigen Anwendung aus - einschließlich Excel.

Der Strichcode muss eigentlich eine größere Schriftgröße haben als der Rest der Zellen - aber Sie können es selbst ausprobieren - vielleicht ist es "gut genug" für Sie.

Es ist nicht die beste Lösung - aber es ist kostenlos. Alternativ können Sie eine Lösung kaufen - eine Suche auf zB Google wird Ihnen einige Treffer liefern.

** Es zeigt ein Barcode-Symbol und nicht den Namen, aber es befindet sich in den Cs, weil der Name der Schriftart code128.ttf ist

Hallo, wie in den obigen Kommentaren besprochen, muss Code128 generiert werden. Allein das Ändern der Schriftart führt zu nicht lesbaren Codes (Codes, die nicht das darstellen, was geschrieben wurde). Irgendeine Art von Add-In oder Makro wird notwendig sein.
Welche Schritte sind erforderlich, um das Prüfzeichen zu berechnen und alles für einen richtig formatierten Barcode zusammenzusetzen?
Leider habe ich wenig Ahnung, wie Code 128 funktioniert. Vielleicht hilft dir das weiter: barcoderesource.com/code128_barcodefont.html
Hier ist auch ein Skript verfügbar idautomation.com/font-encoders/vba-macro Aber wenn ich versuche, es zu verwenden, erscheinen nur zufällige Zeichen (leere Quadrate und so).
Vielleicht funktioniert dieses Makro stackoverflow.com/questions/13909248/…
@ReneLarsen, leider funktioniert es bei mir nicht. Ich habe mein Problem in dem von dir verlinkten Thread gepostet.
leider nein - anscheinend mache ich etwas falsch; Folgendes bekomme ich: k18.imgup.net/ScreenShotb4d1.png

So mache ich es:

Spalte A ist der Text, den ich codieren möchte.

Spalte B ist eine Formel, um diesen Text in Sternchen einzuschließen (was für mich den Eintrag als Text qualifiziert):=CONCATENATE("*",A2,"*")

Der Text in Spalte B ist mit der Barcode-Schriftart formatiert, wobei die Größe für Lesbarkeit, Drucken und Scannen angepasst wurde.

Ich hoffe das hilft irgendwie.

NACHTRAG

Ich habe das folgende Makro gefunden , das von Eric Townsend Schmidt verfasst wurde. Alle Ehre gebührt ihm.

 Public Function code128$(chaine$)
  'This function is governed by the GNU Lesser General Public License (GNU LGPL)
  'V 2.0.0
  'Parameters : a string
  'Return : * a string which give the bar code when it is dispayed with CODE128.TTF font
  '         * an empty string if the supplied parameter is no good
  Dim i%, checksum&, mini%, dummy%, tableB As Boolean
  code128$ = ""
  If Len(chaine$) > 0 Then
  'Check for valid characters
    For i% = 1 To Len(chaine$)
      Select Case Asc(Mid$(chaine$, i%, 1))
      Case 32 To 126, 203
      Case Else
        i% = 0
        Exit For
      End Select
    Next
    'Calculation of the code string with optimized use of tables B and C
    code128$ = ""
    tableB = True
    If i% > 0 Then
      i% = 1 'i% devient l'index sur la chaine / i% become the string index
      Do While i% <= Len(chaine$)
        If tableB Then
          'See if interesting to switch to table C
          'yes for 4 digits at start or end, else if 6 digits
          mini% = IIf(i% = 1 Or i% + 3 = Len(chaine$), 4, 6)
          GoSub testnum
          If mini% < 0 Then 'Choice of table C
            If i% = 1 Then 'Starting with table C
              code128$ = Chr$(205)
            Else 'Switch to table C
              code128$ = code128$ & Chr$(199)
            End If
            tableB = False
          Else
            If i% = 1 Then code128$ = Chr$(204) 'Starting with table B
          End If
        End If
        If Not tableB Then
          'We are on table C, try to process 2 digits
          mini% = 2
          GoSub testnum
          If mini% < 0 Then 'OK for 2 digits, process it
            dummy% = Val(Mid$(chaine$, i%, 2))
            dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 100)
            code128$ = code128$ & Chr$(dummy%)
            i% = i% + 2
          Else 'We haven't 2 digits, switch to table B
            code128$ = code128$ & Chr$(200)
            tableB = True
          End If
        End If
        If tableB Then
          'Process 1 digit with table B
          code128$ = code128$ & Mid$(chaine$, i%, 1)
          i% = i% + 1
        End If
      Loop
      'Calculation of the checksum
      For i% = 1 To Len(code128$)
        dummy% = Asc(Mid$(code128$, i%, 1))
        dummy% = IIf(dummy% < 127, dummy% - 32, dummy% - 100)
        If i% = 1 Then checksum& = dummy%
        checksum& = (checksum& + (i% - 1) * dummy%) Mod 103
      Next
      'Calculation of the checksum ASCII code
      checksum& = IIf(checksum& < 95, checksum& + 32, checksum& + 100)
      'Add the checksum and the STOP
      code128$ = code128$ & Chr$(checksum&) & Chr$(206)
    End If
  End If
  Exit Function
testnum:
  'if the mini% characters from i% are numeric, then mini%=0
  mini% = mini% - 1
  If i% + mini% <= Len(chaine$) Then
    Do While mini% >= 0
      If Asc(Mid$(chaine$, i% + mini%, 1)) < 48 Or Asc(Mid$(chaine$, i% + mini%, 1)) > 57 Then Exit Do
      mini% = mini% - 1
    Loop
  End If
Return
End Function
Hallo, wie in den obigen Kommentaren besprochen, muss Code128 generiert werden (im Gegensatz zu Code39, glaube ich). Allein das Ändern der Schriftart führt zu nicht lesbaren Codes (Codes, die nicht das darstellen, was geschrieben wurde). Irgendeine Art von Add-In oder Makro wird notwendig sein.

Ich habe die Schriftarten von der ID-Automatisierung erhalten . Interessanterweise scheinen ihre VBA-Skripte nur mit ihrer eigenen Schriftart zu funktionieren.

Eine andere Lösung (billiger, aber komplizierter, über AppleScript), die für einen Freund von mir funktioniert, wird hier angeboten: Scorpion Research

Danke an alle fürs Helfen.

Danke Jer-el für die Requisiten.

Es stimmt, dass Sie nicht einfach eine Barcode-Schriftart herunterladen und eine Datenspalte in scanbare Barcodes umwandeln können. Das oben aufgeführte Makro macht den Trick gut. Ich verschiebe es nach http://etownsendschmidt.com/barcode-generator/3/free-barcode-generator-for-excel

Das Makro betrachtet einfach die Daten in einer Spalte und wandelt sie in die Symbole, Zahlen und Buchstaben um, die der auf dafont.com gefundenen Schriftart in einer anderen Spalte entsprechen. Ich habe diese Spalte in der Datei ausgeblendet, um versehentliche Manipulationen zu vermeiden.

Die letzte Spalte ist eine Kopie dieser ausgeblendeten Spalte, wobei die Schriftart die Barcode-Schriftart geändert hat. Klicken und ziehen, fertig. Ich musste 3000 Artikel schnell und ohne Budget barcodieren. Um ganz ehrlich zu sein, habe ich den ursprünglichen, nicht funktionierenden Code auf einer französischen geocities-ähnlichen Website gefunden, und er funktionierte nicht, da sich der Standard für Code128 geändert hat. Nachdem ich es repariert hatte, testete ich es mit meinem iPhone-Barcode-Scanner und SHAZAM! Ich habe ein bisschen geweint...