Daten Gültigkeit

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Daten Gültigkeit

Beitrag von Stephan »

Mit Makrorecorder lässt sich diese spezielle Funktionalität nicht aufzeichnen.


für Zelle A1 im aktiven Tabellenblatt:

Code: Alles auswählen

Sub Validate()
Dim oCel As Object
Dim oValidation As Object
   oCel = ThisComponent.getCurrentController.getActiveSheet.getCellRangeByName( "A1" )
   oValidation = oCel.getPropertyValue("Validation")
   With oValidation
      .Type = com.sun.star.sheet.ValidationType.LIST
      .setFormula1("""abc"";""def"";""ghi""")
      .ShowList = com.sun.star.sheet.TableValidationVisibility.SORTEDASCENDING
      .ShowErrorMessage = True
      .ErrorAlertStyle = com.sun.star.sheet.ValidationAlertStyle.STOP
   End With 
   oCel.setPropertyValue("Validation", oValidation)      
End Sub
(angelehnt an: https://forum.openoffice.org/en/forum/v ... t=ShowList)

Darin kannst Du nun die Liste in Zeile:

Code: Alles auswählen

.setFormula1("""abc"";""def"";""ghi""")
anpassen wie sie benötigt wird.


Gruß
Stephan
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Daten Gültigkeit

Beitrag von F3K Total »

Hallo Tim,
keine Ahnung, ob du das per Aufzeichnung hinbekommen kannst, aber ich habe mal was geschrieben:

Code: Alles auswählen

Sub Wechseln_DatenGueltigkeit_Liste_selbst_geschrieben
    dim sRange(1) as string
    sRange(0) = "$Tabelle1.$B$2:$B$21"
    sRange(1) = "$Tabelle1.$C$2:$C$21"
    oSheet = ThisComponent.Sheets.getbyname("Tabelle1")
    oCell = oSheet.getCellbyPosition(7,3)'H4
    aValidation = oCell.Validation
    if  aValidation.Formula1 =  sRange(0) then
         aValidation.Formula1 =  sRange(1)
    else
         aValidation.Formula1 =  sRange(0)
    endif
    oCell.Validation = aValidation
end sub
Wenn dein Zelle die Zelle H4 auf Tabelle1 ist, und du zwei mögliche Listen auf Tebelle 1, $B$2:$B$21 und $C$2:$C$21 hast, dann wird die gerade aktuelle Liste durch das Ausführen des o.a. Makros auf die andere gesetzt.
Beispiel anbei.
HTH Gruß R
Dateianhänge
Gültigkeitsliste_per_Makroi.ods
(12.77 KiB) 119-mal heruntergeladen
Antworten