Validity per Formel setzen

Hallo zusammen,

ich möchte die Validity einzelner Zellen abhängig von Eingaben im Dokument verändern. Hier ist ein Minimalbeispiel dessen, was ich versuche:

Function DoStuff(validityType As  Integer)

If validityType = 0 Then
	testText = "test1"
	validityList = """test1"";""test2"""
Else
	testText = "test3"
	validityList = """test3"";""test4"""
End If

sheet = ThisComponent.sheets(0)
cell = sheet.getCellRangeByName("F5")

cell.setString(testText)
validation = cell.Validation
validation.Type = com.sun.star.sheet.ValidationType.LIST
validation.setFormula1(validityList)
cell.Validation = validation
DoStuff = ""

End Function


Sub DoMoreStuff

DoStuff(1)

End Sub

Wenn ich “DoStuff(1)” über den Run-Button oder den Wrapper “DoMoreStuff” über Tools → Macros → Run Macro ausführe, dann wird wie erwartet der Inhalt und die Validitätsliste von F5 geändert. Wenn ich aber versuche, “=DoStuff(A1)” als Formel im Sheet zu verwenden, dann wird zwar der Inhalt der Zelle, aber nicht ihre Validitätsliste abhängig vom Inhalt von A1 geändert.

Lassen sich die Validitätseinstellungen einer Zelle auch per Formel ändern? Falls ja, was mache ich falsch? Und falls nicht, warum und was gibt es für Alternativen?

Der tatsächliche Anwendungsfall ist übrigens ein Stundenzettel. Abhängig davon, ob ein Tag im Monat existiert und ob er Wochenende ist oder nicht, sollen für ein bestimmtes Feld unterschiedliche Werte valide sein.

Ola @Sir_Brokkoli , segue um exemplo de validação com dependência.
Para sugestão mais precisa, poste exemplo de arquivo.


Hallo @Sir_Brokkoli, hier ist ein Beispiel für eine Validierung mit Abhängigkeit.
Für genauere Vorschläge posten Sie bitte ein Dateibeispiel.

Sir_Brokkoli_ask_deutsch.ods (14,5,KB)

Danke für das Beispiel, dadurch habe ich eine Lösung gefunden, die für mich funktioniert, auch, wenn ich immer noch gerne verstehen würde, warum mein ursprünglicher Ansatz nicht funktioniert hat.