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
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.





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
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.