Variable dans macro créant un menu déroulant

Polochon69

XLDnaute Nouveau
Bonjour,

Je ne sais pas si le titre est assez explicite, difficile de résumer en quelques mots !
Pour être précis, je crée un menu déroulant en VBA (me suis servi de l'enregistreur), dont la plage de cellules est - pour l'instant - fixée.

En parallèle, j'ai un UserForm qui contient plusieurs TextBox.
Les valeurs entrées par l'utilisateur correspondent à la plage de cellules à valider, qui devront apparaitre par la suite dans le menu déroulant.

Donc ma question est : Comment introduire des variables à l'intérieur de la macro qui crée le menu déroulant ?

Voici mon code :


With Selection.Validation
.delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertWarning, Operator _
:=xlBetween, Formula1:="=X120:X134"
.IgnoreBlank = False
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Valeur inexistante"
.InputMessage = ""
.ErrorMessage = _
"Cette valeur ne fait pas partie de la liste." & Chr(10) & "Etes-vous sur de vouloir continuer ?"
.ShowInput = True
.ShowError = True
End With



Je ne sais même pas si c'est vraiment possible d'ailleurs ?
J'ai essayé de mettre ma variable sous la forme UserForm1.TextBox1.Value, mais ça ne marche pas.

Sachant que j'ai testé avec un MsgBox les valeur contenues dans les TextBox et tout est ok de ce côté la.
Auriez-vous une idée ...?

Merci pour votre aide !

Cordialement,
Polochon
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Variable dans macro créant un menu déroulant

Bonjour Polochon et bienvenu, bonjour le forum,

Je te propose de nous fournir un petit fichier de démo reprenant la structure de ton fichier original (nom des onglets, plages nommés, Userforums, etc.) et une poignée de données non confidentielle. Cela nous permettrait de mieux ciber nos réponses.
Puisque tu es nouveau parmi nous, je te recommande de lire la Lien supprimé qui donne les bons plans pour obtenir de l'aide rapidement.

Une piste peut-être :
Code:
:=xlBetween, Formula1:="=X120:X" & Cells(Application.Rows.Count, 24).End(xlUp).Row
 
Dernière édition:

Polochon69

XLDnaute Nouveau
Re : Variable dans macro créant un menu déroulant

Salut et merci pour ton accueil :)

J'ai réussi à résoudre mon problème grâce à l'aide d'un internaute.
Voici la solution :

Dim plage As String
plage = "=" & UserForm11.TextBox1.Value & ":" & UserForm11.TextBox2.Value

Il fallait donc déclarer une variable en tant que chaine de caractère, et lui attribuer les valeurs contenues dans les TextBox.

Puis dans le code pour le menu déroulant, remplacer la formule par "plage" :

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertWarning, Operator _
:=xlBetween, Formula1:=plage

Merci pour ton aide en tout cas ;)

A bientôt
Polochon
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 400
Membres
102 883
dernier inscrit
jameseyz