Seite 1 von 1

Zellinhalt in Abhängigkeit von Hintergrundfarbe löschen

Verfasst: So, 10.10.2010 19:59
von matlat
Hallo
ich bin blutiger Anfänger in Sachen Makros und habe mir Code zusammengesucht, der das macht, was ich möchte:

Code: Alles auswählen

Sub hintergrundfarbe_entfernen
Dim oZellBereich as Object
Dim oZellbereichsAdresse as new com.sun.star.table.CellRangeAddress

' Zellberechsadresse konfigurieren
oZellbereichsAdresse.Sheet = 0
oZellbereichsAdresse.StartColumn = 1
oZellbereichsAdresse.StartRow = 1
oZellbereichsAdresse.EndColumn = 5
oZellbereichsAdresse.EndRow = 5

' Zellbereich holen und selektieren
oZellbereich = ThisComponent.Sheets( oZellbereichsAdresse.Sheet )._
getCellRangeByPosition( oZellbereichsAdresse.StartColumn, _
oZellbereichsAdresse.StartRow, _
oZellbereichsAdresse.EndColumn, _
oZellbereichsAdresse.EndRow )
ThisComponent.currentController.select( oZellbereich )

'hintergrundfarbe_entfernen
oZellbereich.CellBackColor = RGB(255,255,255)

End Sub
Ein Bereich wird markiert und die Hintergrundfarbe wird auf 'weiß' gesetzt.

Nun möchte ich vor dem Weißsetzen den Inhalt aller blauen Zellen im markierten Bereich löschen.

Sowas wie

Code: Alles auswählen

if oZellbereichsadresse.CellBackColor = RGB(0,0,255) then oZellbereichsadresse.string = ""
endif
muss eingefügt werden.

Für hilfreiche Antworten und Verbesserungen möchte ich mich jetzt schon bedanken.
Wolfgang

Re: Zellinhalt in Abhängigkeit von Hintergrundfarbe löschen

Verfasst: Di, 12.10.2010 09:29
von DPunch
Aloha
matlat hat geschrieben:Ein Bereich wird markiert und die Hintergrundfarbe wird auf 'weiß' gesetzt.

Nun möchte ich vor dem Weißsetzen den Inhalt aller blauen Zellen im markierten Bereich löschen.
Versuch es mal hiermit (RGB(0,0,255) entspricht übrigens der Farbe "Hellblau" im entsprechenden UI):

Code: Alles auswählen

	oFormatRanges = oZellbereich.getCellFormatRanges
	For i = 0 To oFormatRanges.Count - 1
		If oFormatRanges(i).CellBackColor = RGB(0,0,255) Then
			oFormatRanges(i).clearContents(23)
		End if
	Next i
(Für Möglichkeiten zu ".clearContents" siehe API: CellFlags)

Re: Zellinhalt in Abhängigkeit von Hintergrundfarbe löschen

Verfasst: Di, 12.10.2010 21:45
von matlat
Hallo DPunch
Deine Lösung habe ich eingebaut und sie funktioniert wie gewünscht.
vielen Dank dafür
Wolfgang