Hi,
und hier ein anderer Ansatz. Ich gehe davon aus, du hast bereits fertige Muster, bei denen die Zellen von Hand eingefärbt sind und möchtest alle per "Einfacheinstellung" ändern?
In beigefügter Datei befindet sich das folgende Makro:
Code: Alles auswählen
Sub s_add_cellstyle
osheet = ThisComponent.Sheets.getbyName("handgefaerbt")
oSelection = ThisComponent.CurrentSelection
if not oSelection.supportsservice("com.sun.star.sheet.SheetCell") then
msgbox "Bitte einzelne Zelle markieren"
exit sub
endif
nColor = oSelection.Cellbackcolor
oCursor = oSheet.createCursor
oCursor.gotoendofusedarea(false)
nEndRow = oCursor.Rangeaddress.EndRow
nEndColumn = oCursor.Rangeaddress.EndColumn
oRange = oSheet.getcellrangebyposition(0,0,nEndColumn,nEndRow)
oCellFormatRanges = oRange.CellFormatRanges
for i = 0 to oCellFormatRanges.count - 1
oCFR = oCellFormatRanges(i)
if oCFR.Cellbackcolor = nColor Then
oCFR.Cellbackcolor = -1
oCFR.CellStyle = "Webmuster"
endif
next i
End Sub
Es setzt die Zellvorlage "Webmuster" auf alle Zellen die die gleiche Hintergrundfarbe haben, wie die im Augenblick des Makrostarts ausgewählte Zelle. Im Anschluss können alle im Beispiel ehemals grauen Zellen durch Änderung der Zellvorlage in einem Rutsch umformatiert werden.
Gruß R