lancement macro unique au moment du choix d'une liste de validation

dokaz

XLDnaute Nouveau
bonjour,

je souhaite rendre plus convivial une page de sélection dans excel où je choisi dans une liste déroulante une valeur (liste évolutive avec référence d'un nom de plage) et ensuite je lance une macro qui selon la valeur de la cellule de choix me filtre cette valeur dans une dizaine de feuille (filter valeur = valeur choisie).
existe t'il un moyen de lancer automatiquement ma macro de filtre dès que je choisi une valeur de la liste déroulante ?
Je reprécise que ma macro est unique et que je connais pas à l'avance les valeurs de la liste déroulante.

merci d'avance,

Cordialement,
 

dokaz

XLDnaute Nouveau
Re : lancement macro unique au moment du choix d'une liste de validation

bonjour, j'ai recrée en light mon fichier, c'est vrai que ça peut aider ;)

merci
 

Pièces jointes

  • exemple filtre.xls
    53 KB · Affichages: 66
  • exemple filtre.xls
    53 KB · Affichages: 75
  • exemple filtre.xls
    53 KB · Affichages: 71

tototiti2008

XLDnaute Barbatruc
Re : lancement macro unique au moment du choix d'une liste de validation

Re,

à placer dans le code de la feuille Selection

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Sheets("Selection").Range("B3")) Is Nothing Then
        Call selection
    End If
End Sub
 

dokaz

XLDnaute Nouveau
Re : lancement macro unique au moment du choix d'une liste de validation

merci tototiti2008, ça fonctionne nickel, me reste maintenant à bien comprendre le code pour pouvoir le réutiliser.
En revanche, quand je supprime ma valeur sélectionné, j'ai besoin que les valeurs filtrées en A et B s'annulent (toutes données apparentes à nouveau). As tu encore une astuce balaise?
Je compte aussi dans la feuille sélection faire une liste de validation avec cette fois les entrées sur le même principe, je peux mettre simplement le même code avec la nouvelle cible et la macro associée?
Merci d'avance pour les infos et vu l'heure , bon ap'
 

tototiti2008

XLDnaute Barbatruc
Re : lancement macro unique au moment du choix d'une liste de validation

Re,

Comme Selection est un mot-clé VBA, je te conseille de renommer ta procédure

par exemple, dans le code de la feuille Selection

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Sheets("Selection").Range("B3")) Is Nothing Then
        Call filtreselection
    End If
End Sub

Dans le module1

Code:
Sub FiltreSelection()
Dim Critere As String
    Critere = Sheets("Selection").Range("b3").Value
    If Critere = "" Then
        Sheets("A").Range("A3").CurrentRegion.AutoFilter Field:=1
        Sheets("B").Range("A3").CurrentRegion.AutoFilter Field:=1
    Else
        Sheets("A").Range("A3").CurrentRegion.AutoFilter Field:=1, Criteria1:=Critere
        Sheets("B").Range("A3").CurrentRegion.AutoFilter Field:=1, Criteria1:=Critere
    End If
End Sub

Je compte aussi dans la feuille sélection faire une liste de validation avec cette fois les entrées sur le même principe, je peux mettre simplement le même code avec la nouvelle cible et la macro associée?

Oui, je pense
Essaye de le faire et reviens-nous si tu as un soucis
 

dokaz

XLDnaute Nouveau
Re : lancement macro unique au moment du choix d'une liste de validation

Re,

merci effectivement ça va encore plus simplifier mon classeur et le code est largement allégé (2e effet kisscool)
Je confirme aussi que j'ai ajouté dans le code de la feuille une 2e selection avec une autre macro et que ça fonctionne. Dans mon VBA source j'avais déjà des noms de macros filtrxxxx du coup pas de souci.
bon week end
 

Discussions similaires

Réponses
8
Affichages
405

Statistiques des forums

Discussions
312 025
Messages
2 084 749
Membres
102 652
dernier inscrit
Helpmeplz