Range(Erste.Offset(0, 5), Letzte.Offset(0, 5)).Copy Erste.Offset(0, -1)
Set Letzte = Aktuelle.Offset(-1, 0).Range("A1")
Range("G2", Aktuelle.Offset(-1, 5)).Copy Erste
Range("G2", Aktuelle.Offset(-1, 5)).Copy ("A2")/pre>
Was mach ich hier verkehrt?
Hier nochmal der Problemteil des Codes. Ich habe diesen zunächst als separaten Code vom großen abgetrennt, um ihn schneller testen zu können.
Sub Legende()
Dim Erste As Range
Dim Letzte As Range
Dim Aktuelle As Range
Range("B28").Select
Set Aktuelle = ActiveCell
Sheets("Selection").Select
Set Erste = Range("A2")
'Set Letzte = Aktuelle.Offset(-1, 0).Range("A1")
Range("G2", Aktuelle.Offset(-1, 5)).Copy ("A2")
Range("G2", Aktuelle.Offset(-1, 6)).Copy Aktuelle.Offset(-1, 0)
End Sub
Sub Legende()
Dim wksSel As Worksheet
Set wksSel = ThisWorkbook.Worksheets("Selection")
wksSel.Range("G2:G7").Copy wksSel.Range("A2")
wksSel.Range("H2:H7").Copy wksSel.Range("A8")
End Sub
Sub Legende()
Dim Erste As Range
Dim Letzte As Range
Dim Aktuelle As Range
Sheets("Selection").Select
Set Erste = Range("A2")
Set Aktuelle = Range("B28")
'** das ergibt Laufzeitfehler!!
'Set Letzte = Aktuelle.Offset(-1, 0).Range("A1")
Range("G2", Aktuelle.Offset(-1, 5)).Copy Range("A2")
Range("G2", Aktuelle.Offset(-1, 6)).Copy Aktuelle.Offset(-1, 0)
End Sub
Dim Erste As Range
Dim wksSel As Worksheet
Set wksSel = ThisWorkbook.Worksheets("Selection")
With wksSel
.Range("G2:G27").Copy Destination:=.Range("A2")
.Range("G2:H27").Copy Destination:=.Range("B27")
End With
Sub unit()
Dim Aktuelle As Range
Dim rngSource As Range
Dim rngTarget As Range
Dim lngRowEndList As Long
ThisWorkbook.Worksheets("Selection").Select
Set Aktuelle = Range("B28")
lngRowEndList = Aktuelle.Row - 1
Set rngSource = Range("G2", Cells(lngRowEndList, "G"))
Set rngTarget = Range("A2")
rngSource.Copy Destination:=rngTarget
Set rngSource = Range("H2", Cells(lngRowEndList, "H"))
Set rngTarget = Cells(Aktuelle.Row, "A")
rngSource.Copy Destination:=rngTarget
lngRowEndList = Aktuelle.Row + rngSource.Rows.Count - 1
MsgBox "Die Liste endet jetzt" & vbCr & "in Zeile " & lngRowEndList
End Sub
Sub unit()
Dim Aktuelle As Range
Dim lngRowEndList As Long
ThisWorkbook.Worksheets("Selection").Select
Set Aktuelle = Range("B28")
'Im Direktfenster mal anzeigen welches Worksheet hinter "Aktuelle" steht
Debug.Print Aktuelle.Address(, , , True)
lngRowEndList = Aktuelle.Row - 1
Range("G2", "G" & lngRowEndList).Copy Range("A2")
Range("H2", "H" & lngRowEndList).Copy Range("A" & Aktuelle.Row)
lngRowEndList = Aktuelle.Row + lngRowEndList - 2
MsgBox "Die Liste endet jetzt" & vbCr & "in Zeile " & lngRowEndList
End Sub
Sub test()
MsgBox Range("G2", "B28").Address
Set Aktuelle = Range("B28")
MsgBox Range("G2", Aktuelle.Offset(-1, 5)).Address
MsgBox Range("G2", Aktuelle.Offset(-1, 6)).Address
End Sub