IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Filtre automatique en VBA sur plusieurs niveaux


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Gestionnaire de contrats
    Inscrit en
    Octobre 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Gestionnaire de contrats
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2011
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Filtre automatique en VBA sur plusieurs niveaux
    Bonjour à tous

    Je souhaite filtrer un tableau avec des combobox qui donnent les valeurs à filtrer

    Comment puis je récupérer uniquement les valeurs filtrées du niveau 1 pour filtrer le niveau 2

    Filtre du niveau 1 à partir d'un tableau annexe (Fonctionne)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    10 Private Sub cmbFiltSecteur_Change()
     
    'Recherche de contact par secteur, activité et service
    'Recherche du secteur sur combobox cmbFiltSecteur
     
    20 With Sheets("Contacts")
     
    30          .AutoFilterMode = False
     
    40            .Range("A1:W1").AutoFilter
     
    50         If cmbFiltSecteur.Value <> "" Then
    60           .Range("A1:W1").AutoFilter Field:=1, Criteria1:=cmbFiltSecteur.Value
     
    70           End If
    80 End With
    90 End Sub
    Je ne sais pas comment récupérer les valeurs filtrées ci dessus pour filtrer le niveau 2

    de même pour un niveau 3

    Le nom de la combobox devant indiquer les noms à filtrer
    du niveau 2 est cmbFiltAct
    du niveau 3 est cmbFiltNom

    Merci d'avance
    cordialement

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Les résultats après filtres peuvent être facilement récupérés en passant par le Range.SpecialCells : choisir les cellules visibles comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set DataRng = DataRng.SpecialCells(xlCellTypeVisible)
    Vous pouvez aussi passer les paramètres des filtres par un tableau (sur les valeurs ou sur les champs), du style

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub AutoFilter_by_ArrayParam()
    Dim Wks As Worksheet	
    On Error GoTo Err_Filter	
    Dim arCriteria(0 To 1) As String	
     
    Set Wks = ActiveSheet	
    arCriteria(0) = "Loeb"	
    arCriteria(1) = "Vettel"	
     
    Wks.UsedRange.AutoFilter Field:=2, Criteria1:=arCriteria, Operator:=xlFilterValues
     
    Err_Filter:	
    If Err <> 0 Then (...)

Discussions similaires

  1. Recherchev en vba sur plusieur vlaleur
    Par Dream Master dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/06/2007, 15h44
  2. Réponses: 5
    Dernier message: 06/01/2007, 11h09
  3. Réponses: 3
    Dernier message: 11/08/2006, 15h22
  4. Filtre automatique en VBA
    Par kikou44 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/07/2006, 21h24
  5. [Hibernate] Héritage sur plusieurs niveaux
    Par srvremi dans le forum Hibernate
    Réponses: 2
    Dernier message: 31/05/2006, 18h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo