Range dans une variable pour liste déroulante

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),

Bonjour,

je ne suis pas sur, mais vu le fonctionnement des listes de validation, je pense que votre troisième idée ne marche pas :

vous parlez de créer un RANGE sous VBA afin d'intégrer la liste voulue, pourquoi pas.

Mais la validation de la cellule contenant la liste de choix ne peut faire référence à cette variable VBA, elle doit chercher la source quelque part dans le classeur : soit directement sur la validation de données, soit par l'intermédiaire d'une formule ou autre qui renvoie sur une référence de cellule qui est contenue dans le classeur...

Mais ce n'est que mon avis...

@ bientôt

LouReeD

Bonjour,

un Range n'existe QUE sur feuille, tu peux oublier l'idée.

Mais en quoi ça te gêne d'utiliser un bout de feuille ?

Ca peut très bien être une feuille temporaire crée pour l'occasion. Masquée, personne n'y verra rien.

eric

Bonjour,

Pour le fun...

Cdlt.

38dodolu.xlsm (32.51 Ko)

Bonjour a vous trois,

Et merci pour vos réponses.

J'imagine que vous avez raison et que mon idée est impossible.

La seule et unique solution semble bien celle de mettre les validations sur une feuille excel.

Puis d'y faire référence.

Merci encore pour votre aide,

Bonjour,

J'imagine que vous avez raison et que mon idée est impossible.

Il ne faut pas imaginer à ce niveau il faut juste lire ce qui est écrit, et voir ce qui est proposé...

Bien sur que c'est possible, mais on préfère tous garder l'astuce pour nous, c'est plus sympa comme cela !

Allez, @ bientôt

LouReeD

Rechercher des sujets similaires à "range variable liste deroulante"