AW: was ist deine Definition von "definieren"?
06.05.2022 16:42:51
"definieren"?
den wsZ in der For-Zeile muss weg. es bleibt folgendes Übrig:
Sub Übernehmen()
Dim Z As Range
Dim Q As Range
With Worksheets("Tabelle1")
For Each Z In .Range("A1:A10")
Set Q = Worksheets("Tabelle2").Range("A1:A10").Find(what:=Z.Value)
If Not Q Is Nothing Then
If (Q.Offset(0, 1).Value = Z.Offset(0, 1).Value) _
And (Q.Offset(0, 2).Value = Z.Offset(0, 2).Value) _
And (Q.Offset(0, 3).Value = Z.Offset(0, 3).Value) _
And (Q.Offset(0, 4).Value = Z.Offset(0, 4).Value) _
And (Q.Offset(0, 5).Value = Z.Offset(0, 5).Value) Then Z.Resize(1, 6) = Q.Resize(1, 6).Value
End If
Next
End With
End Sub
Du hast Wahrscheinlich den wsZ durch Tabelle1 ersetzt:
Sub Übernehmen()
Dim Z As Range
Dim Q As Range
With Worksheets("Tabelle1")
For Each Z In Worksheets("Tabelle1").Range("A1:A10")
Set Q = Worksheets("Tabelle2").Range("A1:A10").Find(what:=Z.Value)
If Not Q Is Nothing Then
If (Q.Offset(0, 1).Value = Z.Offset(0, 1).Value) _
And (Q.Offset(0, 2).Value = Z.Offset(0, 2).Value) _
And (Q.Offset(0, 3).Value = Z.Offset(0, 3).Value) _
And (Q.Offset(0, 4).Value = Z.Offset(0, 4).Value) _
And (Q.Offset(0, 5).Value = Z.Offset(0, 5).Value) Then Z.Resize(1, 6) = Q.Resize(1, 6).Value
End If
Next
End With
End Sub
was unnötig wäre, weil Worksheets("Tabelle1") schon in dem abkürzenden "With" vorhanden ist.
Etwas was mit einem Punkt anfängt bedeutet "ich nehme die Abkürzung"
Die beide folgende Version sind absolut gleichwertig:
'v1: abgekurzt:
With Worksheets("Tabelle1")
.Range("A1") = .Range("C1").Value
.Range("A2") = .Range("C2").Value
End With
'v2: volle Länge und schwer lesbar
Worksheets("Tabelle1").Range("A1") = Worksheets("Tabelle1").Range("C1").Value
Worksheets("Tabelle1").Range("A2") = Worksheets("Tabelle1").Range("C2").Value
VG
Yal