Ich habe ein Tabellenblatt auf der in Spalte A ab Zeile 6 Ziffern eingetragen werden, welche per SVerweis Daten vom Tabellenblatt "Übersicht" in die Zelle nebendran Offset(,-1) geschrieben werden sollen. Beim Löschen der Ergebnisse aus Spalte A sollen diese auch gelöscht werden. Zusätzlich, soll in Spalte G der dort eingetragene Wert im Tabellenblatt "Übersicht" in der Zeile wo zuvor der SVerweis gefunden wurde eingetragen werden. Das alles funktioniere bereits nur konnte der Code nicht damit umgehen, wenn ich bsp. mehrere Ziffern in Spalte A löschen wollte.
Nach etwas probieren und Durchsuchen im Forum hab ich dann rausgefunden, dass man das wohl irgendwie mit einer For Schleife erledigen muss. Der unten stehende Code klappt aber noch nicht ganz, es gibt zwar keinen Fehler, aber wenn ich mehrere Ziffern in Spalte A löschen will, löscht er dennoch nur den Wert in Spalte B der ersten Zelle des Bereichs. Kann jemand helfen :) Danke vorab. Grüße Marvin
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Ziel, Quelle As Worksheet
Dim Zelle As Range
Dim i As Integer
Set Quelle = Worksheets("Übersicht")
For Each Zelle In Target
If Intersect(Zelle, ActiveSheet.Range("A6:A1000")) Is Nothing And Intersect(Zelle, ActiveSheet. _
Range("G6:G1000")) Is Nothing Then
Exit Sub
End If
With Zelle
If .Column = 1 Then
If .Value = "" Then
.Offset(, 1).Value = ""
Exit Sub
End If
.Offset(, 1).Value = WorksheetFunction.VLookup(Zelle, Quelle.Range("A6:C80"), 3_
, 1)
End If
If Zelle.Column = 7 Then
If Zelle.Value = "" Then
Exit Sub
End If
If Zelle.Offset(, -6).Value = "" Then
Exit Sub
End If
Quelle.Range("A:A").Find(what:=Zelle.Offset(, -6), LookIn:=xlValues, lookat:=xlWhole).Offset(, _
8).Value = Zelle.Value
End If
End With
Next Zelle
End Sub