Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Alimentation d'une liste de validation par code !

2 réponses
Avatar
Lucio
Bonjour,
Je voudrais placer dans un fichier Excel des listes de validation. Je
cherche à mettre cela par macro. Pour le faire je crée une macro en
automatique dans Excel, je la copie et je la colle dans mon code.
Quand je fais cela la macro créée est, en imaginant que je cherche à mettre
les valeurs 1, 2 et 3
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="1;2;3"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With

Mon problème c'est qu'après execution de mon code, il me crée bien une liste
mais celle ci contient une seule ligne avec la 1;2;3. Si je retourne dans
données validation, que j'appuie sur OK sans modifier quoi que ce soit il me
remet la liste en forme sur 3 lignes. Je ne comprends vraiment pas ce qu'il
faut que je fasse pour résoudre ce problème en sachant que le fichier finale
doit être créé en automatique selon plusieurs critères et je ne peux pas
demander à l'utilisateur d'aller valider chaque cellule.

Il y a aussi la solution, où l'on stock les données de la liste dans un
plage de la feuille mais je ne trouve pas cela très propre étant donné que
cette liste est sur plusieurs onglets et qu'il faudrait que je place mes
éléments sur chacun d'eux. Ou alors il me faudrait trouver une solution pour
alimenter ma liste avec des données contenues dans un autre onglet.

J'espère avoir été clair dans mon explication.
D'avance je vous remercie pour votre aide

2 réponses

Avatar
AV
Remplace les points-virgules par des virgules et tout va rentrer dans l'ordre :

xlBetween, Formula1:="1;2;3"
---> xlBetween, Formula1:="1,2,3"

AV
Avatar
Lucio
Nickel ça marche comme ça ! Je te remercie.
C'est quand même bizarre que la macro auto ne renvoie pas le bon code


Remplace les points-virgules par des virgules et tout va rentrer dans l'ordre :

xlBetween, Formula1:="1;2;3"
---> xlBetween, Formula1:="1,2,3"

AV