Macro en fonction d'une liste déroulante

alex49520 Messages postés 124 Statut Membre -  
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

3 réponses

Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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)
0
alex49520 Messages postés 124 Statut Membre 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 !!
0
Mike-31 Messages postés 19572 Date d'inscription   Statut Contributeur Dernière intervention   5 140
 
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)
0