Mit BarcodeScanner einscannen und sortieren

  • Excel

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Mit BarcodeScanner einscannen und sortieren

    Hallo zusammen, ich bin absoluter VBA Anfänger und folgende Frage.

    ich würde gerne mit einem Barcodescanner verschiedene Barcodes einlesen diese sollen jedoch anhand der ersten 2 Zahlen bzw. Buchstaben der ausgelesenen Barcodes sortiert werden. Ich habe mir vorgestellt das ich mit dem Scanner einscanne und dann mir das VBA Skript je nach den ersten beiden Zeichen des Barcodes in verschiedene Arbeitsblätter meiner Arbeitsmappe sortiert.

    Sprich ich Scannen ersten Barcode ein wo zb mit 2AH anfängt dann schreibt er diesen Komplett in Tabelle 1 meiner Arbeitsmappe der 2. Barcode welcher mit 6AB anfängt schreibt er mir automatisch ihn Tabelle 2 meiner Arbeitsmappe.
    Da ich kompletter Anfänger bitte bitte ich um Hilfe.
    Vielen Dank euch .
    Üblicherweise ist für das Programm ein Barcode-Scan nichts anderes als eine Tastatureingabe.
    Excel erkennt den Ursprung nicht.

    Du kannst eine Textbox erzeugen und alles, was dort eingegeben wird, analysierst du und fügst es an entsprechender Stelle ein.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Ungefähr so:

    Visual Basic-Quellcode

    1. Private Sub TextBox1_Change()
    2. Dim s As Integer
    3. If TextBox1.Text Like "#??*xyza" Then ' Eingabe gültiger und kompletter Barcode?
    4. s = Val(Left(TextBox.Text, 1)) 'Sheetnummer extrahieren
    5. Sheets(s).Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = TextBox1.Text 'am Ende einfügen
    6. End If
    7. End Sub
    Hängt halt davon ab, woran du einen gültigen Barcode erkennst.
    Das musst du selbst rausfinden, da ist jeder Barcode anders.
    Ggf. musst du die den CRC berechnen oder sonst wissen, wie der Barcode zusammengesetzt ist.
    Manche haben auch eine fixe Länge, dann wird's einfacher.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Der Barcode unterscheidet sich immer in den ersten 3. Zeichen und danach soll auch sortiert werden.
    z.B Barcode 1. fängt mit 2A an alle mit 2A somit in Tabelle 1 Barcode 2 fängt mit 6B somit in Tabelle 2

    Sie haben nicht immer die gleiche länge aber mich interssieren wie gesagt nur die ersten 3 Stellen

    Ist das so möglich zu realisieren?

    ​Wie erkennt dein Beispiel das der Barcode eingescannt ist und Bereit in das jeweilige Sheet verteilt zu werden ?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „wuschelino22“ ()

    wuschelino22 schrieb:

    mich interssieren wie gesagt nur die ersten 3 Stellen
    Dann kannst das mit der Textbox vermutlich vergessen, weil du da jede Zeichenänderung im Change-Event mitkriegst.
    Sauberer wäre dennoch, die Eingabe auf Barcode-Gültigkeit zu prüfen.
    Ist eigentlich Pflicht bei Barcode-Eingabe.

    Ggf. kannst du eine Zelleingabe auswerten, da kriegst du das Change-Event erst nach Abschluss.

    Visual Basic-Quellcode

    1. ​Privat Sub Worksheet_Change(ByVal Target As Range)
    2. If Target.Address = "$A$1" Then
    3. If Target.Value Like "#[A-Z]?*" Then
    4. s = Asc(Mid(Target.Value,2,1)) - 64 'aus zweitem Zeichen die Seite berechnen
    5. Sheets(s).Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = TextBox1.Text 'am Ende einfügen
    6. End If
    7. End If
    8. End Sub

    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --