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