HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Entdecke rund 2 Millionen Excel-Lösungen im
Forumsarchiv

Beiträge zum Thread: nach Ausführen von Formatierungsmakro fehlen die Linien

Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
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


Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Uduuh
07.06.2026 12:40:42
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Hallo,
es ist immer so, dass bei eingefärbten Zellen die Rahmenlinien nicht mehr sichtbar sind.
Du musst zusätzlich dünne Rahmen um die Zellen einfügen.

Gruß aus'm Pott
Udo
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
07.06.2026 12:58:47
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Hallo Udo,

danke für deine Antwort,

mit VBA die Hintergrundfarben löschen habe ich hinbekommen.
Danke für den Tipp, jetzt ist alles wieder sichtbar.

Schönen Sonntag noch
Christian
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Uduuh
07.06.2026 13:14:10
weißt du überhaupt, ...
... was du machst?

mit VBA die Hintergrundfarben löschen habe ich hinbekommen.
warum lässt du nicht einfach die beiden Zeilen mit .Interior.Color weg?

Gruß aus'm Pott
Udo
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
07.06.2026 13:26:17
AW: weißt du überhaupt, ...
weil ich dann das ganze Makro neu laufen lassen hätte müssen. Hat ne Zeit gedauert. Hab da jetzt keinen Wert auf Speed gelegt, im Sinne von Schleifen vermeiden oder so, da es sowieso eine einmalige Sache von vornerein war.
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
daniel
08.06.2026 10:10:55
AW: weißt du überhaupt, ...
Meine Einstellung ist da mittlerweile, dass man Speed nicht unbedingt für das fertige Programm benötigt, sondern vor allem während der Testphase, da es hier doch häufiger vorkommt, dass man das Programm öfters mal laufen lassen muss, insbesondere dann, wenn man sich dem korrekten Code noch durch Try-and-Error annähern muss.
Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
09.06.2026 12:33:44
prinzipiell
gebe ich dir ja recht, aber das hielt ich zumindest für eine KI für so trivial...
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
snb
09.06.2026 09:50:59
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
verwende 'Styles'

Sub M_snb()

ThisWorkbook.Styles.Add "snb", Cells(1, 2)
Cells(1).CurrentRegion.Style = "snb"
End Sub

Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
09.06.2026 12:36:43
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Hallo snb,

danke erstmal.
ich meine mich dunkel zu erinnern, dass ich das schonmal in einer anderen Mappe gemacht habe, also einen neuen Style erzeugt, damals mit dem Ergebnis, dass es auch auf Bereiche angewendet wurde, wo ich sie hätte gar nicht haben wollen.

Da ich ja sowieso eine Lösung habe, lasse ich da lieber mal die Finger davon.

Gruß
Christian
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
snb
09.06.2026 16:01:19
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
2 Zeilen Code, und schnell ......
Die ZielRange anpassen ist kein Rocket science.
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
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
schauan
08.06.2026 19:56:48
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
... 1) es sollen ja nicht alle Formate übernommen werden sondern nur ausgewählte, Da hat nicht nur paste, sondern auch pastespecial ein Problem, einige Einstellungen wegzulassen. Man müsste dann die "unerwünschten" auf den Standard zurücksetzen oder sich schlimmstenfalls vorher alle Zielformate merken :-(

... 2) da ist wohl die Aufgabenstellung weniger als 100% passend :-( Die Hintergrundfarbe braucht auch nicht übernommen werden, wenn sie hinterher gelöscht wird :-( Bleibt also das Schriftgedöns. Eine Schleife über Tausende Zellen macht da auch Sinn, wenn selbiges öfters mal wechselt.





Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
09.06.2026 12:46:28
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Halo schauan,

wie ich vorhin schon Daniel gesagt hatte, habe es inzwischen erneut bei Copilot eingegeben und jetzt das hier:

Sub Format_und_Farbe_von_B_auf_ACbisL_Ultra()

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

' --- FORMATIERUNG OHNE SCHLEIFE ---
With ws.Range("A1:L" & lastRow)
.Font.Name = "Calibri"
.Font.Size = 11
.Font.Italic = True
.Font.Bold = False
.HorizontalAlignment = xlCenter
End With

' --- SCHRIFTFARBE MIT MINIMALER SCHLEIFE ---
For r = 1 To lastRow
fColor = ws.Cells(r, "B").Font.Color
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


das erfüllt meine Wünsche.
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
daniel
09.06.2026 16:43:14
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
auch das kann man noch kürzen.
da es ja nicht schadet die Quellzelle für die Farbe nochmal zu färben, kann man auch die ganze Zeile in einem Block färben.

und noch ein Tipp, weil RANGE mit zwei Zellen und anderem Tabellenblatt recht aufwendig ist, arbeite mit Resize um die 12 Spalten zu referenzieren


    For r = 1 To lastRow

ws.Cells(r, "A").Resize(1, 12).Font.Color = ws.Cells(r, "B").Font.Color
Next r


noch einfacher wirds, wenn man eine Objektschleife über die Zellen der Spalte laufen lässt:
dim Zelle as Range

for each Zelle in ws.Usedrange.Columns(2)
Zelle.Offset(0, -1).Resize(1, 12).Font.color = Zelle.Font.Color
next


Gruß Daniel
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Christian
09.06.2026 22:56:05
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Hallo Daniel,

wenn ich dich richtig verstehe erster Vorschlag:

Ausgangspunkt ws.Cells(r, "A")
.Resize(1, 12) 1 Spalte hoch 12 breit

2, Vorschlag

For Each Zelle In ws.UsedRange.Columns(2) jede Zelle in Spalte B
Offset(0,-1) verschiebe 0 Zeilen und eine Spalte nach links
Resize(1,12) wie oben
.Font.Color = Zelle.Font.Color setzt die Schriftfarbe von A:L auf die Schriftfarbe von B.

um ehrlich zu sein, wenn das Problem nicht sowieso schon behoben wär, ich würde die erste Lösung nehmen, die war für mich einfacher nachzuvollziehen.

Vielen Dank
Gruß
Christian
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
Forumbeitrag
Excel-Version des Fragestellers:
365 privat
Erfahrungslevel des Fragestellers:
Basiskenntnisse in Excel
Daniel
09.06.2026 13:19:55
AW: nach Ausführen von Formatierungsmakro fehlen die Linien
Es ist mir eigentlich egal, wo du den Code her hast.
Wenn du hier im Forum um Hilfe für diesen Code bittest, gehe ich immer davon aus, dass es dein Code ist, und dass das, was du präsentierst, von dir ist und von dir auch verstanden wurde.
Und wenn du die Hintergrundfarbe mit einer Codezeile änderst, dann muss ich annehmen, dass du das tun willst, denn sonst hättest du diese Codezeile ja nicht dahin geschrieben.