Je souhaiterais créer une liste déroulante qui lance différentes macros suivant la sélection de l'utilisateur. Pour cela, je créer ma liste déroulante "à la main" à l'aide de la commande suivante :
Données => Validation => Option => Liste puis je rentre ma liste : NomMacro1; NomMacro2; NomMacro3...
ensuite, je souhaiterais qu'a la saisie de l'un des éléments de la liste, la macro s’exécute, ainsi je crée une macro Menu qui redirige ces Macros :
Public Sub Menu()
Dim choix As Byte choix = Range("H5").Value
Select Case choix
Case 1
Call Macro1
Case 2
Call Macro2
Case 3
Call Macro3
End Select
End Sub
Non seulement, je n'arrive pas à affecter cette macro à la liste déroulante, mais j'ai aussi une erreur '13' : Incompatibilité de type à la ligne rouge.
Quelqu'un pourrait-il m'éclairer sur ces deux problèmes.
Merci à tous pour vos suggestions.
bonjour Range(...).Value est du type string et n'est donc pas directement exploitable en numérique; il faudrait utiliser quelque chose du style : Val(Range(...).Value)
Merci pour vos réponses, c'est vraiment génial, juste une dernière question, comment avez vous affecté les trois macro à la liste déroulante, quelle est la marche à suivre?
Il faut se servir du Private "Sub Worksheet_Change(ByVal Target As Range)" ==> donc ça détecte si il y a un changement sur la feuille. Là on test si c'est la cellule "B1" (uniquement celle-là dans mon exemple) qui est modifiée.
Ensuite selon le choix dans la liste on exécute telle ou telle macro...