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
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
Als Antwort auf diesen Beitrag
Christian
07.06.2026 11:58:07
nach Ausführen von Formatierungsmakro fehlen die Linien
Hallo, ich bitte um eure Hilfe.

Nach Ausführen des unten stehenden Makros fehlen in den Spalten A und B:L in den Zeilen 1:98080 diese feine Linie, die man standardmäßig um jede Zelle herum in einem Excel Blatt sieht. Wie bekomme ich die wiederhergestellt.
Das Makro braucht ihr nicht zu ändern, damit es künftig nicht mehr passiert, das Makro war eine einmalige Sache.

Danke
Christian

Sub Codes_Format_And_Color_From_B()


Dim ws As Worksheet
Dim r As Long
Dim lastRow As Long
Dim colorVal As Long

Set ws = ThisWorkbook.Worksheets("Codes")
lastRow = 98080 ' Vorgabe laut Anforderung

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

For r = 1 To lastRow

' Schriftfarbe aus Spalte B holen
colorVal = ws.Cells(r, "B").Font.Color

' Schriftfarbe auf A und C:L übertragen
ws.Range(ws.Cells(r, "A"), ws.Cells(r, "L")).Font.Color = colorVal

' Formate (ohne Schriftfarbe) aus B auf A und C:L übertragen
ws.Cells(r, "A").Interior.Color = ws.Cells(r, "B").Interior.Color
ws.Cells(r, "A").Font.Name = ws.Cells(r, "B").Font.Name
ws.Cells(r, "A").Font.Size = ws.Cells(r, "B").Font.Size
ws.Cells(r, "A").Font.Bold = ws.Cells(r, "B").Font.Bold
ws.Cells(r, "A").Font.Italic = ws.Cells(r, "B").Font.Italic
ws.Cells(r, "A").HorizontalAlignment = ws.Cells(r, "B").HorizontalAlignment
ws.Cells(r, "A").VerticalAlignment = ws.Cells(r, "B").VerticalAlignment

ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).Interior.Color = ws.Cells(r, "B").Interior.Color
ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).Font.Name = ws.Cells(r, "B").Font.Name
ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).Font.Size = ws.Cells(r, "B").Font.Size
ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).Font.Bold = ws.Cells(r, "B").Font.Bold
ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).Font.Italic = ws.Cells(r, "B").Font.Italic
ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).HorizontalAlignment = ws.Cells(r, "B").HorizontalAlignment
ws.Range(ws.Cells(r, "C"), ws.Cells(r, "L")).VerticalAlignment = ws.Cells(r, "B").VerticalAlignment

Next r

' Autofit
ws.Columns("A:L").AutoFit

Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic

MsgBox "Format- und Farbübertragung abgeschlossen.", vbInformation

End Sub


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.