1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| Sub liste
dim cl as object, shcl as object, fl as object, cVal as object
dim nb as integer
dim i as byte
dim strVal As String
cl = thiscomponent
shcl = cl.sheets
Fl = ShCl.getByName("Rapport")
strVal = """2014""" '"""" & Left(Annee, Len(Annee) 3) & """" si première valeur variable
For i = 0 To 3 'De 0 à maxMois - minMois +1 en réalité
If i > 0 Then
nb = 44*(i+1)-43
' strVal = strVal & Chr(10) & Fl.getCellRangeByName("C" & nb).String
strVal = strVal & "";"" & """" & Fl.getCellRangeByName("C" & nb).String & """"
End If
Next i
cVal = Fl.getCellRangeByName("C1").getPropertyValue("Validation")
With cVal
.IgnoreBlankCells = False
.setPropertyValue("ErrorAlertStyle" , com.sun.star.sheet.ValidationAlertStyle.STOP)
.setPropertyValue("Type", com.sun.star.sheet.ValidationType.LIST)
.setPropertyValue("Operator", com.sun.star.sheet.ConditionOperator.EQUAL)
.setPropertyValue("ShowErrorMessage", true)
.setPropertyValue("ErrorTitle", "Erreur de saisie")
.setPropertyValue("ErrorMessage", "Saisir uniquement une valeur de la liste")
'Ligne suivante désactivée pour ne pas me retrouver dans mon cas avec une liste ou février est avant janvier et mars...
'.setPropertyValue("ShowList", com.sun.star.sheet.TableValidationVisibility.SORTEDASCENDING)
.setFormula1(strVal)
.setPropertyValue("formula2","0")
End With
Fl.getCellRangeByName("C1").setPropertyValue("Validation",cVal)
End Sub |
Partager