In einem Tabellenblatt (Excel 16) haben haben alle Zellen eine Randformatierung (Rahmen).
Oft werden in der Tabelle ganze Bereiche nach oben oder nach unten verschoben. Dabei entsteht jeweils auf dem Blatt, wo die verschobenen Zellen vorher standen, ein leerer weißer Bereich ohne Randformatierung.
Gibt es eine Lösung, wie dieser leere Bereich wieder automatisch nach dem Verschieben mit der ursprünglichen Formatierung versehen wird?
03.05.2020, 22:37 (Dieser Beitrag wurde zuletzt bearbeitet: 03.05.2020, 22:38 von echo.)
Hallo statt zu verschieben, warum blendest du die leeren Zeilen nicht einfach aus, oder du löscht die überflüssigen Zeilen? > ein erneutes einfügen neuer Zeilen würde auch das Zellformat übernehmen.
leere Zeilen kann ich nicht löschen; alle Blätter sollen nach dem Ausdruck dieselbe Zeilenanzahl haben. Jetzt formatiere ich nach dem Verschieben noch händisch die weißen und leeren Bereiche. Dies sollte in Zukunft automatisch geschehen.
sind die leeren Zellen, die frei sind/werden, immer mit den gleichen Rahmenformatierungen versehen? Dann wäre eine VBA-Lösung nicht so kompliziert, falls das für dich in Frage kommt.
alle leeren Zellen sollen immer mit derselben Rahmenformation versehen werden (immer dünner Rahmen ringsherum). So waren sie schon vor dem Verschieben formatiert. Im Beispiel der Exceltabelle Blatt 1a sind es immer die benachbarten Zellen B-C-D-E-F einer Zeile.
dann probiere es mal mit folgendem VBA-Code, den du im VBA-Editor bei "Tabelle1 (Route)" einfügen musst:
Code:
Private Sub Worksheet_Calculate()
Dim MyBereich As Range Dim Zelle As Range
Application.ScreenUpdating = False
Set MyBereich = Range("B23", "F56")
For Each Zelle In MyBereich If IsEmpty(Zelle) Then With Zelle.Borders(xlEdgeLeft) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Zelle.Borders(xlEdgeTop) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Zelle.Borders(xlEdgeBottom) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With With Zelle.Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = xlAutomatic .TintAndShade = 0 .Weight = xlThin End With
ich halte das mit mehreren Tabellen auf einem Blatt für keine glückliche Lösung; dennoch: wenn du mehrere Bereich zusammenführen möchtest, dann gibt es dafür den Befehl "Union":
Code:
Set bigRange = Application.Union(Range("Range1"), Range("Range2"))