Clever-Excel-Forum

Normale Version: Userform: Daten á la "sverweis" aus tbl auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo und einen schönen Freitag in die Runde,
ich bin VBA-Einsteiger, der am besten am "lebenden Objekt" übt, was dazu führt, dass man hängenbleibt, weil der "Bildungsstand" noch nicht weit genug fortgeschritten ist. Alle Suche und alles Probieren brachte mich nicht weiter.
Ich möchte Daten aus einer Tabelle in eine Userform auslesen nach dem Prinzip des SVERWEIS.
Die Datentabelle hat in Spalte A eindeutige 4-stellige ID-Nummern. In den nebenstehenden Spalten liegen die zur entsprechenden ID passenden Daten. Jede Zeile ist somit eine Art Datensatz. Spalte A = IDNr, SpalteB = Name, Spalte C= Geburtsdatum usw.
Die Userform hat entsprechende Textfelder. In Textfeld1 soll manuell eine ID-Nr eingetragen werden mit der dann die entsprechenden Daten in der Tabelle gesucht werden und automatisch die weiteren Textfelder der Userform befüllt. Start durch Enter (präferiert) oder auch CommandButton.
Bsp. Eingabe Textfeld1: 1234, befüllen von Texfeld2 mit dazugehörigem Wert aus Spalte B, Tesctfeld3 mit Wert aus Spalte C usw.
Wie gesagt, vergleichbar mit dem sverweis.
Wird die "gesuchte" ID-Nr. aus Textfeld1 in der Liste NICHT gefunden erfolgt MsgBox "ID unbekannt".
Hat jemand von Euch Profis dafür einen Code für mich mit dem ich rumprobieren und üben kann? Das wäre wirklich super, ich brauche endlich mal wieder ein Erfolgserlebnis 22 . Vielen Dank im Voraus für Eure Zeit und Mühe. Grüsse - Jürgen
Ja, vielen Dank,
Hajos Vorschlag habe ich gesehen, allerdings (noch) nicht kapiert.
Ich habe zufällig vlookup gefunden (wusste nicht, dass es das gibt in VBA) Confused  und komme der Sache langsam näher.
Im Moment funzt es schon ganz gut so:

Private Sub Text_Positionsnummer_AfterUpdate()

'Auslesen der Daten von Tabelle Wiedervorlage auf ufWiedervorlage

If WorksheetFunction.CountIf(Tabelle5.Range("A:A"), Me.Text_Positionsnummer.Value) = 0 Then
MsgBox "Positionsnummer liegt nicht vor !", vbCritical, "FEHLER - Positionsnummernabfrage"
Exit Sub
End If
With Me
.Text_PosiKomplett = Application.WorksheetFunction.VLookup(CLng(Me.Text_Positionsnummer), Tabelle5.Range("A1:H2000"), 2, 0)
.Text_Shipper = Application.WorksheetFunction.VLookup(CLng(Me.Text_Positionsnummer), Tabelle5.Range("A1:H2000"), 3, 0)
.Text_Account = Application.WorksheetFunction.VLookup(CLng(Me.Text_Positionsnummer), Tabelle5.Range("A1:H2000"), 4, 0)
.Text_Mode = Application.WorksheetFunction.VLookup(CLng(Me.Text_Positionsnummer), Tabelle5.Range("A1:H2000"), 5, 0)
.Text_Abwickler = Application.WorksheetFunction.VLookup(CLng(Me.Text_Positionsnummer), Tabelle5.Range("A1:H2000"), 6, 0)
.Text_WVLDatum = Application.WorksheetFunction.VLookup(CLng(Me.Text_Positionsnummer), Tabelle5.Range("A1:H2000"), 7, 0)
.Text_Bemerkung = Application.WorksheetFunction.VLookup(CLng(Me.Text_Positionsnummer), Tabelle5.Range("A1:H2000"), 8, 0)
End With

End Sub

Ich bastel grade an den Formaten (z.Bsp. Datumsformat etc.) rum. Außerdem ist wohl ein Problem mit dem 0-Wert. Denn, wenn ich das Feld ID-Nummer mit der Return-Taste lösche springt der Debugger an. Das darf natürlich nicht passieren, wenn ein User dransitzt. Er muss das Feld löschen können ohne Fehlermeldung. Da weiß ich nocht nicht wo ich da den Fehler suchen muss.
Hallöchen,

Zitat:Denn, wenn ich das Feld ID-Nummer mit der Return-Taste lösche springt der Debugger an.

Prüfe auch das - wenn nix dort steht, dann Exit Sub ...