Zellfarbe zur Laufzeit ändern
Verfasst: Mi 21. Dez 2011, 10:47
Hallo zusammen!
Ich hab ein kniffliges Problem. Ich versuche eine Arbeitsmappe mit Makros aus MS Office in LibreOffice (Calc) zum laufen zu bekommen. Dabei gibt es folgende Probleme.
Zum Start werden alle Zellen geschützt und dann eingestellt, dass ein Macro den Status ändern kann, aber nicht der Nutzer. Die Felder werden vom Makro freigeschaltet, sobald die Bedingungen erfüllt sind. Zusätzlich soll die Farbe änderbar sein, um dem Anwender zu zeigen, dass er ein Feld vergessen hat (rot einfärben). Folgende Zeile nimmt Calc nicht an:
Er will den zweiten Parameter nicht (Unnamed). Kennt jemand das Äquivalent dazu in LibreOffice?
Das zweite Problem ist die Abfrage der zuletzt geänderten Zelle. Es geht um eine Lösung, die mir sofort nach verlassen der zuletzt bearbeiteten Zelle etwas ausführt. Hier wird eine Beispielanzeige eingeschaltet und die Farbe der Zelle geändert. Die Funktion liefertr aber leider nicht das korrekte Ziel:
Die Fehlermeldung lautet auf einen falschen Index außerhgalb der Range. Also vermute ich mal, dass ich nicht "A11" sondern irgendetwas bekomme. Die Fehlerzeile ist:
Kann mir jemand helfen. Es wäre schön, wenn ich das auch im LibreOffice hinbekäme.
Viele Grüße,
Tacitus
Ich hab ein kniffliges Problem. Ich versuche eine Arbeitsmappe mit Makros aus MS Office in LibreOffice (Calc) zum laufen zu bekommen. Dabei gibt es folgende Probleme.
Zum Start werden alle Zellen geschützt und dann eingestellt, dass ein Macro den Status ändern kann, aber nicht der Nutzer. Die Felder werden vom Makro freigeschaltet, sobald die Bedingungen erfüllt sind. Zusätzlich soll die Farbe änderbar sein, um dem Anwender zu zeigen, dass er ein Feld vergessen hat (rot einfärben). Folgende Zeile nimmt Calc nicht an:
Code: Alles auswählen
Worksheets("Settings").Protect UserInterfaceOnly:=True, AllowFormattingCells:=True
Das zweite Problem ist die Abfrage der zuletzt geänderten Zelle. Es geht um eine Lösung, die mir sofort nach verlassen der zuletzt bearbeiteten Zelle etwas ausführt. Hier wird eine Beispielanzeige eingeschaltet und die Farbe der Zelle geändert. Die Funktion liefertr aber leider nicht das korrekte Ziel:
Code: Alles auswählen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim help_str As String
Dim help_row As String
Dim help_column As String
Dim ok As Boolean
help_str = Target
help_column = Left(Target.Address(0, 0), 1) ' Target.Address liefert zum Beispiel "A11", was dann weiter verarbeitet werden kann
help_row = Right(Target.Address(0, 0), Len(Target.Address(0, 0)) - 1)
If ActiveSheet.Cells(Val(help_row), Asc(help_column) - 64).Interior.Color = RGB(255, 0, 0) Then
ActiveSheet.Cells(Val(help_row), Asc(help_column) - 64).Interior.Color = RGB(255, 153, 0)
End If
End Sub
Code: Alles auswählen
If ActiveSheet.Cells(Val(help_row), Asc(help_column) - 64).Interior.Color = RGB(255, 0, 0) Then
Viele Grüße,
Tacitus