Macro en fonction d'une liste déroulante

Fermé
Signaler
Messages postés
121
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
8 juillet 2012
-
Messages postés
17714
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 décembre 2021
-
Bonjour à tous,

J'ai un petit souci, j'ai créé une macro et je l'ai affecter à un bouton. A l'origine ma macro devait simplement m'envoyer sur le feuille Avril.

Désormais, j'ai créé une liste déroulante, et je souhaiterais que ma macro s'ouvre en fonction du résultat de la cellule déroulante. Si dans la cellule déroulante on clique sur Mai, je souhaiterais que le bouton me renvoi sur la feuille Mai et non Avril.

Quelqu'un a une idée ?

Merci d'avance,

Alex

3 réponses

Messages postés
17714
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 décembre 2021
4 863
Salut,

A partir d'une liste de validation en C2 par exemple le code est

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets(Range("C2").Value).Select
End Sub

A partir d'un Combobox sur ta feuille si ta combobox renseigne une cellule C2 par exemple le code est

Private Sub ComboBox1_Change()
Sheets(Range("C2").Value).Select
End Sub

ou directement
Private Sub ComboBox1_Change()
Sheets(ComboBox1.Value).Select
End Sub

Dans tous les cas je rajouterais ce code qui d'un clic droit, active la feuille qui est déjà sélectionnée dans ta cellule

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Sheets(Range("C2").Value).Select
End Sub

A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)
Messages postés
121
Date d'inscription
mardi 26 août 2008
Statut
Membre
Dernière intervention
8 juillet 2012
10
Sub Balance_mensuelle()
'
' Plan_comptable Macro
' Macro enregistrée le 19/05/2009 par ST1
'

'
Private Sub Worksheet_Change(ByVal Target As Range)
Sheets(Range("C2").Value).Select

End Sub

Peux tu me dire pourquoi ça ne fonctionne pas ?

Merci d'avance, c'est assez urgent !!
Messages postés
17714
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
8 décembre 2021
4 863
Salut,

Pour ce code marche, il faut que la valeur de la cellule C2 change, si tu mets exemple Feuil1 change le 1 en 2 Feuil2 ou 3 et ça marche (bien sur si tes feuilles sont nommées Feuil1, Feuil2 etc ... si non en C2 tu dois mettre le nom de ta feuille). Il faut changer ton code par exemple ci dessous s'exécute lors d'un clic droit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Sheets(Range("C2").Value).Select
End Sub


A+
Mike-31

Un problème sans solution est un problème mal posé  (Einstein)