Suchfunktion VBA Excel Bestellsystem
08.02.2019 07:17:41
Kevin
es handelt sich bei meiner Frage um ein Projekt meiner Ausbildung. Und zwar geht es um ein "Bestellsystem" für unseren Stützpunkt.
Als Aufgabe habe ich die Vereinfachung der Bestellvorgänge für Material.
Daher habe ich mit meinen eher geringen Kenntnissen mittels VBA eine Excel-Datei erzeugt, welche umfassend alle wichtigen Funktionen und Vorgaben meines Chefs und der Kollegen erfüllt.
Bis auf eine wichtige Kleinigkeit...
Bei meiner Suchfunktion habe ich noch einen Fehler, welchen ich bis dato nicht alleine beseitigt bekomme.
Ich frage aus einer Tabelle (Mappe 2 bzw. Produktkatalog) nach Werten ab.
Diese Werte wurden zuvor händisch oder via Barcode-scanner (Daher der Variablenname BarcodeText) abgefragt. Jetzt soll GENAU die Eingabe gefunden warden.
Sprich ermittelt der Scanner den Wert "1234" soll auch der Wert "1234" gefunden warden!! Bisher ist es so, dass der erste Wert gefunden wird.
Befindet sich also in der Tabelle in meinem Produktkatalog noch ein Artikel mit der Nummer "123" und steht vor dem Artikel mit der Numemr "1234" in der Tabelle so wird immer der Artikel "123" ausgewählt.
Dabei ware richtiger Weise der Artikel "1234" auszuwählen.
Mit der FindNext Methode habe ich bisher keinen Erfolg gehabt.
Entweder hat die Definition für FindNext nicht gepasst, oder der vergleich auf gleichheit mit anschließendem Loop für die FindNext Methode hatte bei mir keinen Erfolg verbuchen können. Leider bin ich nun ratlos.
Ich habe sau viel ausprobiert und herumgetüftelt, bin bisher jedoch nicht an der Schwelle zum Erfolg gewesen.
Ich hoffe Ihr könnt mir helfen.
Vielen Dank im Voraus,
Kevin
Hier anbei mein bisheriger Code:
Dim rng As Range
Set rng = Tabelle2.Range("A6:D200").Find(BarcodeText)
' Definition des Suchbereiches "rng".
BarcodeText.Value = ""
If rng Is Nothing Then
MsgBox "Es ist ein Fehler aufgetreten! Der Artikel konnte Anhand der Bestellnummer nicht im _
Katalog gefunden werden. Bitte die Artikelbeschreibung Händisch eintragen."
Exit Sub
' Suchfunktion -> übergibt Ergebnis an die Variable rng.Row
' Bei einem Fehlerfall (Bestellnummer nicht im Katalog gelistet) erscheint eine _
Fehlermeldung in einem neun Fenster.
Else
passendeZelle = rng.Row
'schreibt das Suchergebnis in die Variable passendeZelle
Sheets("Produktkatalog").Select
'Sprung in andere Tabelle
Text = Cells(passendeZelle, 5)
'Variable der Passenden Zelle in Spalte 5
Sheets("GUI_Bestellsystem").Select
'Sprung in andere Tabelle
Cells(Application.Max(6, Cells(Rows.Count, 4).End(xlUp).Row + 1), 4) = Text
'Setzt die Artikelbeschreibung in der Tabelle GUI_Bestellsystem in Spalte 4 in die
'nächste freie Zelle ein.
End If