Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Formatierung automatisch wiederherstellen nach einer Zellenverschiebung
#1
Hallo Excelfreunde,

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?

Wer kann mir helfen?

Hager


Angehängte Dateien
.xlsx   002_Planung_Format-Zellen.xlsx (Größe: 16,89 KB / Downloads: 20)
Antwortento top
#2
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.

Gruß Holger
Antwortento top
#3
Hallo Holger,

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.

Gruß Hager
Antwortento top
#4
Hallo Hager,

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.
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Antwortento top
#5
Hallo Lucky Joe,

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.

Herzliche Grüße aus Franken
Hager
Antwortento top
#6
Hallo Hager,

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
           
        End If
    Next
   
    Application.ScreenUpdating = True

End Sub


Viel Erfolg
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Antwortento top
#7
Hallo Lucky Joe,




vielen Dank für Deine nette Hilfe bei der Lösung meines Problems bei der Erstellung der Radtourenliste.

Mit Deinem Code habe ich das Problem beim Verschieben und Neuformatieren für einen Bereich in den Griff bekommen.

MyBereich = Range("B23", "F56") war jedoch nur als Beispiel in der verkürzten Excel-Radtourenliste eingefügt.



Problematisch ist, daß die ganze Radtourenliste aus 8 Doppelseiten (1a, 1b, bis 8a und 8b) besteht und sich auf einem Arbeitsblatt befinden.



Diese 16 zu korrigierenden Bereiche sind:



Range("B74", "F134"), Range("H74", "L134"), Range("N74", "R134"), Range("T74", "X134"),

Range("B143", "F203"), Range("H143", "L203"), Range("N143", "R203"), Range("T143", "X203"),

Range("B212", "F272"), Range("H212", "L272"), Range("N212", "R272"), Range("T212", "X272"),

Range("B281", "F341"), Range("H281", "L341"),Range("N281", "R341"), Range("T281", "X341").



Die Lösung, wie man den im Code enthaltenen Einzel-Range auf diese 16 Bereiche vergrößert habe ich nicht finden können.



Viele Grüße


Hager
Antwortento top
#8
Hi,

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"))
Herzliche Grüße aus dem Rheinland
Jörg

[Windows 10, Microsoft 365]
Antwortento top
#9
>  
Hallo Lucky Joe,

nochmals herzlichen Dank für Deine wirklich freundliche Hilfe; die Codes haben mir geholfen nun weiter zu kommen.

Viele Grüße
Hager
Antwortento top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste