Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Label
BildScreenshot zu Label Label-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema OptionButton
BildScreenshot zu OptionButton OptionButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Textbox und Barcode Scanner

Betrifft: Textbox und Barcode Scanner von: Markus B.
Geschrieben am: 05.09.2014 08:02:29

Guten Morgen ich habe folgendes Problem,
ich hätte gerne über einen Barcode Scanner meine Lager Tabelle gepflegt.
Leider hab ich das Ergebnis bis jetzt nur bedingt umsetzen können.
Es sollte so sein das über einen Option Button hinzufügen oder entnehmen angewählt wird und dann ein Barcode gescannt wird die ID Nr. aus dem Barcode (beginnt mit 10001)wird in Eine versteckte Textbox in der Userform geschrieben und soll in Spalte U gesucht werden und dann aus derselben Zeile in Spalte N der Bestand geändert werden.
Falls in Spalte N "Alt" steht soll eine Msg Box mit einer Nachricht aufgehen.
Leider bekomme ich es nicht hin das In Spalte U gesucht wird, im Moment Zähle ich die Zeilen, dass funktioniert allerdings nur Solange bis ein neuer Artikel eingepflegt wird.
Ich hoffe mir kann jemand Helfen.
Mfg
Markus
p.s. mein bisheriger Code
Option Explicit
Dim barc As Integer
Dim entn As Integer

Private Sub OptionButton1_Click()
TextBox1.SetFocus

End Sub
Private Sub OptionButton2_Click()
TextBox1.SetFocus

End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

TextBox1.SetFocus
If KeyCode = 13 Then
 barc = TextBox1.Value
 TextBox1.Text = ""
  With ActiveCell
End With

 Sheets("Regalordnung").Activate
 If Tabelle2.Cells(barc + 2, 14).Value = "Alt" Then
 MsgBox "Altes Bauteil kein Bestand hinterlegt"
 Exit Sub
 End If
 If OptionButton1.Value = True Then
 Tabelle2.Cells(barc + 2, 14).Value = Tabelle2.Cells(barc + 2, 14).Value - Val(1)
  If Tabelle2.Cells(barc + 2, 14).Value = 0 Then
  MsgBox "Achtung Bestand aufgebraucht! Ersatz bestellen", , "Warnung"
   End If
   End If
  
 If OptionButton2.Value = True Then
 Tabelle2.Cells(barc + 2, 14).Value = Tabelle2.Cells(barc + 2, 14).Value + Val(1)
  End If

 End If
End Sub


Private Sub CommandButton1_Click()
Unload Me
End Sub

  

Betrifft: AW: Textbox und Barcode Scanner von: fcs
Geschrieben am: 05.09.2014 11:46:18

Hallo Markus,

zum Einlesen des per Barcode in eine Textbox kann ich dir nichts schreiben.
Soweit ich weiss schreibt die Scanner-Software den gescannten Wert meistens in eine Zelle in xcel.

Den Code hab ich jetzt mal so angepasst, dass der in Textbox1 eingegebene Barcode/ID nach drücken der Enter-Taste in Spalte U gesucht wird und abhängig vom Ergebnis bestimmte Aktionen ausgeführt werden.

Das muss du dann ggf. noch an deine Tabelle(n) anpassen.

Gruß
Franz

Option Explicit

Dim barc As Long
Dim entn As Integer
Dim Zeile As Long

Private Sub OptionButton1_Click()
  TextBox1.SetFocus
End Sub

Private Sub OptionButton2_Click()
  TextBox1.SetFocus
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
                 ByVal Shift As Integer)
  Dim wksRegal As Worksheet, Zelle As Range, Zeile_1 As Long
  TextBox1.SetFocus
  If KeyCode = 13 Then
    barc = TextBox1.Value
  
    Set wksRegal = Sheets("Regalordnung")
    With wksRegal
      'letzte Zeile mit Daten in Spalte U
      Zeile_1 = 2 'Nummer der Zeile mit Spaltentiteln/Zeile oberhalb der 1. ID-Nummer
      Zeile = .Cells(.Rows.Count, 21).End(xlUp).Row
      Set Zelle = Nothing
      If Zeile > Zeile_1 Then 'es gibt schon ID-Nummern
        Set Zelle = .Range(.Cells(Zeile_1 + 1, 21), .Cells(Zeile, 21)).Find(what:=barc, _
              LookIn:=xlValues, lookat:=xlWhole)
      Else
        Zeile = Zeile_1
      End If
      
      If Zelle Is Nothing Then
        'ID existiert noch nicht
        Zeile = Zeile + 1
        If MsgBox("ID """ & barc & """ ist noch nicht vorhanden. ID jetzt anlegen?", _
              vbQuestion + vbOKCancel, "Unbekannte ID") = vbOK Then
          .Cells(Zeile, 21).Value = barc
          .Cells(Zeile, 14).Select
          .Cells(Zeile, 14).Value = Application.InputBox("Anfangsbestand:", "Neue ID", 1, _
              Type:=1)
        Else
          Exit Sub
        End If
      Else
        'ID-gefunden
        Zeile = Zelle.Row
        Cells(Zeile, 14).Select
        If .Cells(Zeile, 14).Value = "Alt" Then
          MsgBox "Altes Bauteil kein Bestand hinterlegt"
        Else
          If OptionButton1.Value = True Then
            .Cells(Zeile, 14).Value = .Cells(Zeile, 14).Value - 1
            If .Cells(Zeile, 14).Value = 0 Then
              MsgBox "Achtung Bestand aufgebraucht! Ersatz bestellen", , "Warnung"
            End If
          ElseIf OptionButton2.Value = True Then
            .Cells(Zeile, 14).Value = .Cells(Zeile, 14).Value + 1
          Else
            MsgBox "Es wurde keine der Optionen Entnehmen/Einlagern gewählt!"
          End If
        End If
      End If
      TextBox1.Text = ""
    End With
  End If
End Sub



Private Sub CommandButton1_Click()
    Unload Me
End Sub



  

Betrifft: AW: Textbox und Barcode Scanner von: Markus B.
Geschrieben am: 05.09.2014 12:28:16

Hallo Franz,
danke erstmal für die schnelle Hilfe.
Der Scanner schreibt dahin wo der Cursor gerade Aktiv ist und daher in die Textbox wenn man die Userform startet.
Soweit funktioniert fast alles perfekt komischerweise will er aber immer bei den ID´s mit mit 4 und 9 am ende (10004, 1009, 10014 usw.) eine neue ID anlegen


  

Betrifft: AW: Textbox und Barcode Scanner von: fcs
Geschrieben am: 05.09.2014 13:53:44

Hallo Markus,

sas Problem mit Endziffer 4 und 9 kann ich jetzt nicht nachvollziehen.

Möglichkeit 1:
Der Scanner produziert beim Einlesen von 4 und 9 noch iregendwelche myteriösen Zeichen.
Eher unwahrscheinlich, denn dann müsste es Fehlermeldungen beim Zuweisen des Textbox-Inhalts an die Variable barc geben.

Möglichkeit 2: In der Tabelle sind in Spalte U bei den Einträgen mit Endziffer 4 und 9 noch unsichtbare Zeichen enthalten (z.B. führende/nachgetellte Leerzeichen).
In diesem Fall ersetze via Suchen/Ersetzen die Leerzeichen in dem Zellbereich der ID-Nummern durch nichts.

Möglichkeit 3: In der Tabelle ist in Spalte U bei den Einträgen mit Endziffer 4 und 9 Buchstabe O statt 0 eingetragen.

Weiter reicht meine Phantasie bei diesem Problem nicht.

Gruß
Franz


 

Beiträge aus den Excel-Beispielen zum Thema "Textbox und Barcode Scanner"