Hallo zusammen,
ich stehe vor einem Problem.
bin dran an einer Datei mit zwei Tabellenblätter. (Tabelle 1 und Tabelle 2)
Ich möchte bei Tabelle 1, Spalte A einen Wert eingeben und dieser sollte
dann in Tabelle 2 Spalte A gesucht werden. (Gleich nach der Eingabe des Wertes, mit Enter bestätigt)
Bei Übereinstimmung soll die Zeile kopiert werden
und in Tabelle 1 beim gesuchten Wert ab Spalte B (nach rechts) eingefügt werden.
(Ja mit Sverweis könnte es auch funktionieren sind aber zuviele Datenabfragen)
Die Tabelle 1, Spalte A, können unterschiedliche Anzahl Zeilenwerte haben. (einmal sollen 3 Werte abgefragt werden und dann wieder 5 Werte)
folgenden VBA- Code habe ich bereits:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fehler
Dim Tb2 As Worksheet, ZE As Integer, Z
Const APPNAME = "Worksheet_Change"
Set Tb2 = Sheets("Tabelle2")
ZE = 4 ' Erste Datenzeile
If Not Intersect(Range("A:A"), Target) Is Nothing Then
If Target.Row >= ZE Then
For Each Z In Intersect(Range("A:A"), Target)
With Z.Offset(0, 1).Resize(1, 3)
Application.EnableEvents = False
.FormulaR1C1 = "=IFERROR(VLOOKUP(RC1," & Tb2.Name & "!C1:C4,COLUMN(),0),"""" _
_
)"
.Value = .Value
Application.EnableEvents = True
End With
Next
End If
End If
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number 0 Then MsgBox "Fehler in Sub """ & APPNAME & """" & vbCrLf _
& "Fehlernummer: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub
zusätzliche Frage:
Welchen Wert muss ich ändern wenn in Tabelle2 weitere Spalten dazukommen?
Ist es möglich eine Abfrage zu starten, wenn in Tabelle1 Zelle M1 den Wert "Morgen" hat dann die
Suche auf das Tabellenblatt "Morgen" zu beziehen?
Und wenn in Tabelle1 Zelle M1 den Wert "Abend" hat dann die Suche auf das Tabellenblatt "Abend" zu beziehen?