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.