HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
09.06.2026 12:45:01
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Hallo Daniel,
wie gesagt, ich habe nichts böses ahnend Copilot gesagt, ich suche ein Makro, dass Formatierung und Schriftfarbe von Spalte B auf die Spalten A und C:L überträgt und gesagt dass die Formate einheitlich sind und sich die Farbe von Zeile zu Zeile unterscheidet.
Ich dachte dabei an konkret Calibri, 11, kursiv, zentriert, nicht fett. War nur zu faul das alles auszuschreiben, weil ich der Überzeugung war, Copilot macht dann sowas wie man bei Werte Einfügen - Formatierung hat.

An Hintergrunfarben hatte ich nie vor etwas zu ändern und dann hatte ich den Schlamassel.

Aber wie gesagt, ist ja jetzt gelöst.
Danke für die Erklärung
Christian

Inzwischen hab ich das ganze auch nochmal bei Copilot eingegeben und das hier bekommen:

Sub Format_und_Farbe_von_B_auf_ACbisL()

Dim ws As Worksheet: Set ws = ActiveSheet
Dim lastRow As Long
lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row

Dim r As Long
Dim fColor As Long

Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

For r = 1 To lastRow
' Schriftfarbe aus B holen
fColor = ws.Cells(r, "B").Font.Color

' Formatblock einmal setzen
With ws.Range(ws.Cells(r, "A"), ws.Cells(r, "L"))
.Font.Name = "Calibri"
.Font.Size = 11
.Font.Italic = True
.Font.Bold = False
.HorizontalAlignment = xlCenter
End With

' Schriftfarbe auf A und C:L setzen
ws.Cells(r, "A").Font.Color = fColor
ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).Font.Color = fColor
Next r

Application.Calculation = xlCalculationAutomatic
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
Als Antwort auf diesen Beitrag
daniel
08.06.2026 11:36:15
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Hi
nochmal zur Erläuterung:
Excel zeigt die dünnen Hilfsrahmenlinien nur an, wenn die Zellen keine eigene Farbe haben sondern mit der Standardfarbe angezeigt werden.
Sobald sie eine eigene Farbe haben, verschwinden die Hilfsrahmenlinien und es werden nur die "echten" Rahmenlinien angezeigt.
das gilt auch für die Farbe weiß, welche eine echte Farbe sein kann, aber auch die Standardfarbe.

mit dem Code: Range(x).Interior.Color = Range(y).Interior.Color gibst du der Zelle X die echte Farbe weiß, auch wenn die Zelle Y keine eigene Farbe hat sondern nur über den Standard weiß angezeigt wird, weil die Abfrage .Interior.Color nicht unterscheiden kann, ob das Weiß der Zelle eine echte Farbe ist oder keine und daher die Zelle X die echte Farbe weiß bekomm.

Eine Möglichkeit, das Problem lösen, wäre hier der Rückgriff auf den eigentlich veralteten Colorindex, der diese Unterscheidung im Abfrageergebnis macht:

If Range(y).Interior.ColorIndex = -4142 Then

Range(x).Interior.Color = -4142
Else
Range(x).Interior.Color = Range(y).Interior.Color
end if


wenn man nicht das veraltete Colorindes verwenden will, kann man auch "Pattern" abfragen.
if Range(y).Interior.Pattern = xlNone then

Range(x).Interior.Pattern = xlNone
else
Range(x).interior.color = Range(y).Interior.Color
End if


das ganze geht auch als Einzeiler, weil man die Hintergrundfarbe auch mit .Interior.Color = xlnone löschen kann. Mann kann es über .Interior.Color nicht abfragen, aber anwenden. (warum auch immer)
Range(x).Interior.Color = IIF(Range(y).Pattern = xlnone, xlnone, Range(y).Interior.Color)


xlNone ist die Systemvarialble für -4142
beim setzen der Hintergrundfarbe wird das Pattern automatisch mit geändert.


generell stellt sich die Frage, ob es nicht einfacher gewesen wäre, die Formate mit Copy-Paste zu übertragen, da hätte man die ganze Spalte in einem Rutsch umformatieren können.
Oder gibt es Rahmenlinien, die nicht geändert werden sollen?


Gruß Daniel
Folgenachrichten
Antwort auf Beitrag erstellen
Bitte einen Anwendernamen ohne @ eingeben.
Bitte das Passwort eingeben.
Bitte eine gültige E-Mail-Adresse eingeben.
Bitte einen Betreff eingeben.
Weitere Optionen
Aktivieren, wenn die Frage/der Beitrag noch nicht beantwortet wurde und unter Listen > Offene Threads erscheinen soll.
Beispieldatei hochladen

Bitte einen Nachrichtentext eingeben.