Je cherche à insérer dans une cellule une liste déroulante, voici la fonction que j'ai trouvée et légèrement modifiée :
Code : Tout sélectionner
Function Liste_Cellule(Cellule as object, liste) 'liste as tableau de string
Dim strVal as string
strVal=""
For i=0 to UBound(liste)
if strVal ="" then
strVal = Trim(CStr(liste(i)))
else
strVal = strVal & chr(10) & Trim(CStr(liste(i)))
end if
Next i
cVal = Cellule.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")
.setPropertyValue("ShowList", com.sun.star.sheet.TableValidationVisibility.SORTEDASCENDING)
.setFormula1(strVal) 'Testé avec "" & strVal & "" sans plus de résultat
.setPropertyValue("formula2","0")
End With
Cellule.setPropertyValue("Validation",cVal)
' Cellule.string=strVal
End function
Code : Tout sélectionner
liste(0)="aaaaa"
liste(1)="bbbbb"
Code : Tout sélectionner
liste(0)="56891"
liste(1)="14865"
Je n'ai rien trouvé pour l'instant, si quelqu'un à une piste de recherche, je suis preneur.
Merci d'avance