Zellinhalt in Abhängigkeit von Hintergrundfarbe löschen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Zellinhalt in Abhängigkeit von Hintergrundfarbe löschen

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

von matlat » Di, 12.10.2010 21:45

Hallo DPunch
Deine Lösung habe ich eingebaut und sie funktioniert wie gewünscht.
vielen Dank dafür
Wolfgang

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

von DPunch » Di, 12.10.2010 09:29

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)

Zellinhalt in Abhängigkeit von Hintergrundfarbe löschen

von matlat » So, 10.10.2010 19:59

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

Nach oben