ich habe ein VBA Problem mit dem ich leider selbst nicht weiter komme und würde mich über Unterstützung sehr freuen.
Ich möchte zwei Tabellen T1 und T2 miteinander auf auf Artikelnummerbasis in Spalte A als Schlüssel vergleichen.
Excel sollte nun prüfen, ob die Artikelnummer in T2 bereits in T1 enthalten ist. Wenn ja, müssten die Inhalte von T2, Spalte "B" bis "E" hinter der 6. Spalte von T1 in der Zeile mit der entsprechenden Vorgangsnummer eingefügt werden. Wenn nein, sollte diese Vorgangsnummer in einer neuen Zeile bei T1 Spalte "A" erscheinen, die Spalten 2 bis 6 bleiben dann leer, und ab Spalte 7 kommt wieder der Inhalt von T2.
Dieser Vorgang funktioniert sehr gut. Das eigentliche Problem liegt nun darin, dass ich häufiger verschiedene Tabellen T2 vergleichen möchte. Die Daten sollen dann in den Spalten fortlaufend, entspr. der Artikelnummer hinter die Werte des letzten Vergleichs geschrieben werden.
Hier der Code:
Sub vergleichen()
Dim i As Integer
Dim t2_zeilen As Integer
t2_zeilen = 500
For i = 1 To t2_zeilen
With Sheets(1).Range("A1:A800")
Set suche = .Find(Sheets(2).Range("A" & i).Value, LookIn:=xlValues)
Set t1_leer = Range("A1:A65536").Find("", LookIn:=xlValues)
If Not suche Is Nothing Then
suche.Select
Sheets(1).Range(ActiveCell.Offset(0, 6), ActiveCell.Offset(0, 9)).Value = _
Sheets(2).Range("B" & i, "E" & i).Value
Else
t1_leer.Select
ActiveCell.Value = Sheets(2).Range("A" & i).Value
Sheets(1).Range(ActiveCell.Offset(0, 6), ActiveCell.Offset(0, 9)).Value = _
Sheets(2).Range("B" & i, "E" & i).Value
End If
End With
Next i
End Sub
Rein theoretisch müsste es mit dem Befehl: .End(xlToRight).Offset(0, 1) klappen ich bekomme leider den Code nicht sauber umgeschrieben.
Ich freue mich auf eure Antworten
MFG
Andreas