Seite 1 von 1

Bereiche eingrenzen

Verfasst: Fr 3. Mär 2023, 15:35
von stef2018r
Hallo,
bislang habe ich mit Excel gearbeitet, aber nun muss ich auf Libre Office umsteigen. Meine ersten Versuche waren nur bedingt erfolgreich.
Ich möchte, dass, wenn ich eine Zelle einmal anklicke, diese eine neue Hintergrund Farbe bekommt, bei zweimal anklicken soll sie wieder weiß werden. Ein Makro für diese Funktion habe ich gefunden und anpassen können (Vielen Dank an den Autor!)
Was ich zusätzlich benötige ist, dass die Farbänderung weiß/lila/weiß nur bei den Zellen im Bereich B6:AF7 stattfindet. Im Bereich B8:AF9 sollen die Zellen z.B. gelb sein.
Ich kriege diese Bereich-Eingrenzung leider nicht hin. Anbei habe ich meine Muster-Datei eingefügt.
Der Code für Excel war wie folgt (mit anderen Farben):

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column >= 2 And Target.Column <= 32 Then
Select Case Target.Row
Case 6 To 7
If Target.Interior.ColorIndex = 6 Then
Target.Interior.ColorIndex = xlNone
Else
Target.Interior.ColorIndex = 6
End If
Case 8 To 9
If Target.Interior.ColorIndex = 23 Then
Target.Interior.ColorIndex = xlNone
Else
Target.Interior.ColorIndex = 23
End If
End Select
End If

End Sub

Ich wäre für jede Hilfe dankbar.

Re: Bereiche eingrenzen

Verfasst: Fr 3. Mär 2023, 17:01
von mikele
Hallo,
willkommen - und hoffentlich viel Freude mit LibreOffice (auch wenn der Wechsel erfahrungsgemäß manchmal steinig erscheint).
Die Programmierung von Makros unterscheidet sich schon wesentlich, auch wenn LO einige Excel-Makros problemos ausführen kann.
Für dein Problem, z. B. so:

Code: Alles auswählen

Sub Change_Color
    oDoc = ThisComponent
    oZell = oDoc.CurrentSelection
    if oZell.supportsService("com.sun.star.sheet.SheetCell") OR oZell.supportsService("com.sun.star.sheet.SheetCellRange")then
        oBereich=oZell.Spreadsheet.getCellRangeByName("B6:AF7")
        oZellen=oBereich.queryIntersection(oZell.RangeAddress) 
        If oZellen.Count>0 then
	        If oZellen(0).cellbackcolor = RGB (225, 214, 246) Then
	            oZellen(0).cellbackcolor = -1
	            else
	            oZellen(0).cellbackcolor = RGB (225, 214, 246)
	        end if
		End If
    end if
end sub

Re: Bereiche eingrenzen

Verfasst: Fr 3. Mär 2023, 18:11
von stef2018r
Vielen Dank für die schnelle Antwort.
Werde gleich ausprobieren.
Viele Grüße aus den Norden

Re: Bereiche eingrenzen

Verfasst: Mi 15. Mär 2023, 18:57
von stef2018r
Hallo,
ein bisschen verspätet melde ich mich.
Es hat alles super geklappt. Vielen Dank