ich habe eine Tabelle die ich manuell fülle: Spalte A= Datum Spalte B= Wert1 Spalte C= Wert2
Wenn ich mein Userform öffne lass ich mir in Textbox1 das Datum anzeigen (Textbox1.Value = Date).
Mit der Funktion (Terxtbox1_Change) aktiviere ich einen sverweis (Suche Spalte A; Ergebnis Spalte B in Textbox2)
Jetzt zu meinem Problem:
Ich bekomme kein Ergebnis in Textbox2 angezeigt.
Wenn ich allerdings das Datum in der Tabelle gegen Zahlen (1,2,3,4...) tausche und in der Textbox1 dann statt Datum ebenfalls die Zahl 1,2,3 oder 4 eingebe funktioniert der sverweis.
Ich nehme an das das Datum in der TextBox1, welches richtig angezeigt wird (13.06.2017), irgendwie nicht gleich ist wie das Datum in der Tabelle Spalte A (13.06.2017). Rein optisch gibt es hier allerdings keinen Unterschied.
Also, mein sverweis funktioniert....wie kann ich die TextBox oder die Spalte A umformatieren damit der sverweis auch mit dem Datumsfeld funktioniert.
Aber irgendwie bekomme ich das nicht hin, deshalb mal ein vereinfachter Code Abschnitt:
Code:
Private Sub UserForm_Activate()
TextBox1.Value = Date
End Sub
Private Sub Textbox1_Change()
With Workbooks("TTA.xlsm") Dim varSuchbegriff1 As Variant If IsNumeric(TextBox1.Value) Then varSuchbegriff1 = Val(TextBox1.Value) Else varSuchbegriff1 = TextBox1.Value On Error Resume Next TextBox2.Value = WorksheetFunction.VLookup(varSuchbegriff1, Workbooks("TTA.xlsm").Sheets("Tabelle1").Range("A:B"), 2, 0) If Err.Number <> 0 Then TextBox2.Value = "Nichts gefunden" On Error GoTo 0 End With
End Sub
Kannst Du mir das bitte noch einmal genauer erklären ?
Ich habe bereits einige Konstellationen versucht...leider ohne Erfolg.
mit dem Change-Ereignis würdest Du keine Freude haben, wenn Du das Datum eintippst. Das wäre mein Vorschlag:
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean) If IsDate(TextBox1.Value) Then TextBox2.Text = CStr(Application.VLookup(CDbl(CDate(TextBox1.Value)), Sheets("Tabelle1").Range("A1:B999"), 2, 0)) If Err.Number <> 0 Then TextBox2.Value = "Nichts gefunden" & Err.Description Else MsgBox "Bitte eingültiges Datum eingeben!" TextBox1 = "" TextBox2 = "" Cancel = True End If End Sub