Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Barcode scannen und in Excel verarbeiten

Betrifft: Barcode scannen und in Excel verarbeiten von: Harald
Geschrieben am: 28.10.2014 17:01:10

Hallo Foren-Gemeinde,

ich habe ein spezielles Kassensystem über Excel mit viel vba im Hintergrund erstellt. Nun kommen Anforderungen einen Handscanner benutzen zu wollen. Der Barcode soll also abgescannt werden, und in Excel wird daraufhin in einer bestimmten, dem Produkt zugeordneten Zelle der Wert "1" eingetragen. Nochmal das gleiche scannen führt zum Ergebnis "2" in dieser Zelle. Ein weiteres Produkt scannen bedeutet in einer anderen Zelle, das dem Produkt in der Liste zugeordnet ist, den Wert "1" und so weiter. Produktliste umfasst ca. 100 Produkte.

Wie mache ich Excel klar, dass genau das passiert wie oben beschrieben? Muss ich ein Übersetzungs-Sheet generieren? Dann könnte ich mit SVERWEIS oder per vba die Zuordnung erledigen. Der Schritt dazwischen fehlt mir gedanklich... Danke für Hilfe.

Grüße Harald

  

Betrifft: AW: Barcode scannen und in Excel verarbeiten von: Tino
Geschrieben am: 31.10.2014 10:17:14

Hallo,
ich denke dies ist ein Fall für VBA.

Im Code gehe ich davon aus, das der Wert oder Text auf der Tabelle2 in A2 eingescannt wird.
Die Datenbank befindet sich auf der Tabelle1.
Die Daten in der Spalte A und Ergebnis kommt in Spalte B.

kommt als Code in Tabelle2

Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
Dim varRow 
Dim rngScannFeld As Range 
'A2 ist die Zelle wo gescannt wird 
Set rngScannFeld = Range("A2") 
 
If Not Intersect(rngScannFeld, Target) Is Nothing Then 
    If rngScannFeld.Value <> "" Then 
        With Tabelle1 'Ergebnis Tabelle, evtl. anpassen 
            varRow = Application.Match(rngScannFeld.Value, .Columns(1), 0) 
            If IsNumeric(varRow) Then 
                .Cells(varRow, 2).Value = .Cells(varRow, 2).Value + 1 
                'Farbe grün = ok 
                rngScannFeld.Interior.Color = RGB(0, 176, 80) 
            Else 
                'Farbe rot = Fehler 
                rngScannFeld.Interior.Color = RGB(255, 0, 0) 
                'oder und Fehlermeldung 
                MsgBox "Daten '" & rngScannFeld.Value & "' nicht gefunden!", vbExclamation 
            End If 
        End With 
    End If 
End If 
End Sub 
 
Gruß Tino


  

Betrifft: AW: Barcode scannen und in Excel verarbeiten von: Harald
Geschrieben am: 31.10.2014 14:02:36

Hallo Tino,

das ist schon ein sehr guter Ansatz. Wenn ich das sehe weiß ich was Profis können :-)

Ich denke dass hier noch eine zusätzliche Definition gebraucht wird. Und zwar werden nicht aus Excel gescannt sondern auf den Produktpackungen sind die EAN drauf. Natürlich wird Excel diesen Code irgendwie erkennen müssen, also ein Matching zwischen dem Produkt-Code und wohl eine Art Vergleichs-Code der in Excel vorhanden ist. Und bei einer Entsprechung soll dann die passende Zelle angesteuert werden. Diesen Teil habe ich hoffentlich in Deiner Zeile 12 (vor dem Kommentar Farbe grün = ok) korrekt interpretiert?

Ist es notwendig dass ich den Code in Excel abbilde? DANKE nochmal für Unterstützung... Grüße Harald


  

Betrifft: AW: Barcode scannen und in Excel verarbeiten von: Tino
Geschrieben am: 31.10.2014 15:18:57

Hallo,
du scannst von der Produktpackung in die Zelle die wir dafür definiert haben.

  • Vorbereitete Excel-Datei aktivieren

  • auf die Tabelle2 gehen

  • Zelle A2 auswählen (evtl. leeren wenn vom Scanner nicht überschieben wird - austesten)

  • Produkt in die Hand nehmen

  • Code scannen


  • Die Scanner die ich kenne,
    schieben am Ende automatisch ein Enter hinterher wodurch die nächste Zelle aktiviert wird
    dadurch wird dieser Event Code der sich auf der Tabelle2 befindet ausgelöst.
    Danach Zelle A2 auswählen,
    mit Entfernentaste leeren (evtl. wird vom Scanner komplett überschrieben) und
    nächstes Produkt scannen.
    (den letzten schritt kann man auch automatisieren um das einscannen schneller zu machen)


    Gruß Tino