Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

kleines Lagerverwaltungsprogramm

kleines Lagerverwaltungsprogramm
28.04.2016 17:17:01
Kai
Hallo Zusammen,
ich rätsel seit Stunden an folgendem Problem:
Ich habe eine UserForm. Wenn ich dort eine Teilenummer eingebe, soll in einer Excel Tabelle nach dieser Nummer gesucht werden. Wenn gefunden, sollen die Details, zB die Bezeichnung oder der Bestand (jeweils rechts neben der Teilenummer angeordnet) in den entsprechenden Textfeldern der Userform erscheinen.
Ich bin nun so weit, dass ich die Entsprechende Teilenummer finde, bzw diese Zelle dann aktiv ist. Ich hänge nun an der Übertragung der Details in die UserForm.
In Zukunft soll dann in der Userform eine Änderung vorgenommen werden können, und die Daten dann wieder aktualisiert in die Tabelle geschrieben werden.
Wäre toll wenn jemand eine Einfall hat!
Grüße
Kai

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kleines Lagerverwaltungsprogramm
28.04.2016 18:55:53
ChrisL
Hi Kai
Viele Wege führen nach Rom, nachfolgend ein möglicher Ansatz.
Eigentlich brauchst du nichts anderes als eine =SVERWEIS() Formel. Schön an Excel ist, dass du Tabellenfunktionen auch in VBA verwenden kannst. Dazu die englischen Formelnamen (SVERWEIS = VLOOKUP) verwenden und Komma (,) anstelle von Strichpunkt (;) als Trennzeichen.
d.h. WorksheetFunction.VlookUp(Teilenummer, Range("X1:Z100"), 2, 0)
also so z.B...
TextBox1 = WorksheetFunction.VlookUp(Teilenummer, Range("X1:Z100"), 2, 0)
TextBox2 = WorksheetFunction.VlookUp(Teilenummer, Range("X1:Z100"), 3, 0)
Range bezieht sich auf die gerade aktive Tabelle. Um dies zu ändern gibst du die Tabelle d.h. das Worksheet an. z.B.
TextBox1 = WorksheetFunction.VlookUp(Teilenummer, Worksheets("Tabelle1").Range("X1:Z100"), 2, 0)
TextBox2 = WorksheetFunction.VlookUp(Teilenummer, Worksheets("Tabelle1").Range("X1:Z100"), 3, 0)
Damit du das nicht immer wiederholen musst, machst du einmalig einen "Rahmen" drum. Der Punkt vor der Range stellt den Bezug zum With-Rahmen her (und geht gern vergessen).
With Worksheets("Tabelle1")
TextBox1 = WorksheetFunction.VlookUp(Teilenummer, .Range("X1:Z100"), 2, 0)
TextBox2 = WorksheetFunction.VlookUp(Teilenummer, .Range("X1:Z100"), 3, 0)
End With
Speziell musst du auf den richtigen Datentyp achten. Eine TextBox (wie es der Name sagt) enthält Text. In deiner Tabelle wirst du aber Zahlen und Daten haben. Unter anderem musst du die Teilenummer (als Variable, TextBox oder Tabelle) gleich handhaben. Vermutlich ist die vom Typ Long (Ganzzahl).
z.B.
Dim Teilenummer As Long
oder
Range(...) = Clng(TextBoxTeilenummer)
Da in jedem zweiten Beitrag (leichte Übertreibung) jemand eine Eingabemaske bauen will, würde ich dir empfehlen die Zeit in die Suche nach einem guten Beispiel zu investieren. Ich bin fast sicher, dass du eine Beispieldatei findest, auf die du aufbauen kannst.
cu
Chris
PS: Worauf ich in der Antwort u.a. auch heraus wollte. Es ist zwar schön, dass du die Teilenummer gefunden und selektiert hast, aber auf Select/Activate solltest du im vornherein verzichten.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige