18.01.2023, 17:55
Hallo
hier noch ein excellenter Code um MergeCells zu verschieben mit einigen Warnmeldungen bei Unstimmigkeiten.
Warum klappte es nicht über den bisherigen Code?? Weil Excel nun mal sehr penibel in den Code Details ist!!
Mehrfach schlug mein Code fehl, kam eine DialogBox das Excel die verknüpften Zellen auflösen will! Jedesmal Murks.
Bis ich begriff das man nicht die LastZell in Tabelle Abtragen suchen muss, sondern auch noch die Laenge der MergeCells feststellen und bei der Festlegung von LastZell zum Einfügen berücksichtigen muss. Dann klappt das verschieben auch!
mfg Gast 123
hier noch ein excellenter Code um MergeCells zu verschieben mit einigen Warnmeldungen bei Unstimmigkeiten.
Warum klappte es nicht über den bisherigen Code?? Weil Excel nun mal sehr penibel in den Code Details ist!!
Mehrfach schlug mein Code fehl, kam eine DialogBox das Excel die verknüpften Zellen auflösen will! Jedesmal Murks.
Bis ich begriff das man nicht die LastZell in Tabelle Abtragen suchen muss, sondern auch noch die Laenge der MergeCells feststellen und bei der Festlegung von LastZell zum Einfügen berücksichtigen muss. Dann klappt das verschieben auch!
mfg Gast 123
Code:
Sub MergeCells_verschieben()
Dim rw As Long, rx As Integer, Bereich As String
Dim lz1 As Long, lz2 As Long, lrx As Integer
If ActiveSheet.Name <> "Karte" Then Exit Sub
rw = ActiveCell.Row
rx = ActiveCell.MergeArea.Rows.Count - 1
lz1 = Sheets("Abgetragen").Cells(Rows.Count, 1).End(xlUp).Row
lz2 = Sheets("Abgetragen").Cells(Rows.Count, 2).End(xlUp).Row
lrx = Sheets("Abgetragen").Cells(lz2, 1).MergeArea.Rows.Count
If rw < 10 Then MsgBox "Ungültige Zeile < 10": Exit Sub
If Cells(rw, 1).Value = Empty Then MsgBox "Datum fehlt!!": Exit Sub
If lz1 <> lz2 Then MsgBox "Unstimmige Endzeile in Abgetragen": Exit Sub
'Cut Bereich über NergeCells festlegen
Bereich = rw & ":" & rw + rx
'Ziel Row über lrx festlegen (MergeCells berücksichtigen!)
Sheets("Karte").Rows(Bereich).Cut _
Sheets("Abgetragen").Rows(lz1 + lrx)
ActiveCell.Select
End