Bonjour a tous amis Exceleur,
Je viens poster mon problème, car après quelques jours de recherches, je ne parviens pas à trouver de solution à mon problème.
1/ Contexte :
Je souhaite créer par Vba une liste déroulante :
' avec temp01 = "mes infos dans la liste déroulante"
For ii = 1 To BDDTab(i)(0)
temp01 = BDDTab(i)(ii) & "," & temp01
Next
With Application.ActiveWorkbook.Sheets("Infos").Cells(i, currentCol).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, Operator:=xlBetween, Formula1:=temp01
.IgnoreBlank = True
.ShowError = False
.InCellDropdown = True
End With
2/ Probleme :
Les liste déroulantes (validation) doivent être séparées par une virgule (sur Vba).
Mais comme j'ai des valeurs avec des virgules, cela ne m'arrange pas du tout. Modifier les virgules par un autre symbole n'est pas possible non plus.
3/ Solution(s) envisagées :
- La première solution (la plus simple) serait de mettre ces valeurs dans la feuille de calcul puis de pointer ma liste dessus. (mais je ne souhaite pas cette solution, pour de nombreuses raison) Pis ca serait pas marrant si c'était trop facile.
- La seconde solution (mais je pense que ca n'existe pas) serait de redéfinir le séparateur des listes déroulante par un pipe "|" par exemple. (solution top mais Microsoft se fout de mon avis).
- La dernière solution que j'ai imaginé, (c'est d ailleurs celle pourquoi j'ai besoin de votre aide). Serait de rentrer toutes les valeurs de la liste déroulante dans une range sous format de variable par exemple (temp01). Je pense que cette solution est possible, au lieu de noter les valeurs sur la feuille de calcul puis de créer un range, puis de mettre cette range sur la liste déroulante, il devrait être possible d'incorporer directement une sorte de range virtuel sous forme de variable directement.
Qu'en pensez vous ?
Merci pour votre aide précieuse (si j'ai été suffisamment compréhensible),