Comment filtrer avec VBA

Fermé
wambus Messages postés 9 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 13 septembre 2018 - 10 juil. 2017 à 14:36
 gérard - 11 juil. 2017 à 19:31
Bonjour cher tous.
Déjà, je tien à préciser que je suis totalement noviste en ce qui concerne le vba.
En fait je souhaiterai créer une liste déroulante dans ma base de données Excel qui me permettra de faire apparaitre les individus par ville et par filière. tels sont mes critères.

S'il vous plait puis-je avoir une solution ?

Je vous remercie d'avance.



2 réponses

 
Fichier Excel 2007 : https://mon-partage.fr/f/DHmNwX2f/

Ctrl f => filtre mis en place pour ces 2 colonnes : ville et filière
Ctrl c => clear filtre : effacement du filtre précédent ; mode filtre : toujours activé

Tu peux refaire Ctrl f suivi de Ctrl c autant de fois que tu veux ; en plus :
Ctrl a => mode filtre activé puis désactivé (bascule On / Off).

À toi d'adapter le tout sur ton vrai classeur Excel.  ;)

Merci de me dire si ça te convient.
 
1
Bonjour wambus,

Sélectionne une cellule de ton tableau, par exemple la 1ère cellule
en haut à gauche sur ta ligne d'en-têtes (= coin haut gauche du
tableau) ; onglet Données, groupe « Trier et filtrer », clic sur le
gros entonnoir gris, juste au-dessus du mot « Filtrer » => des
petites flèches bas apparaissent sur ta ligne d'en-têtes (une pour
chaque colonne) ; une petite flèche bas sert à choisir le critère
pour la colonne concernée ; pour ce que tu as demandé, c'est
pour la colonne « ville » et pour la colonne « filière ».

Quand un critère est appliqué, les lignes qui ne correspondent
pas au critère sont masquées : elles sont simplement cachées,
pas supprimées ; choisir ☑ (Sélectionner tout) pour enlever
le critère de la colonne.

Quand tu auras terminé ta consultation selon les critères, clique
de nouveau sur le gros entonnoir gris pour désactiver le filtre
automatique, ce qui affiche toutes les lignes masquées.

Regarde l'aide d'Excel sur l'utilisation du filtre automatique
pour plus de détails.

Cordialement
 
0
wambus Messages postés 9 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 13 septembre 2018
10 juil. 2017 à 15:51
Merci Gérard. Cependant je connais parfaitement ce que tu viens de décrire.

Je demandes de ce fait s'il est possible de transcrire cette démarche en VBA. Question d'automatiser la chose.
Une liste VBA qui pourra m'afficher différente villes par exemple, de telle sorte qu'en choisissant l'une des villes j'obtiens uniquement les lignes contenant ladite ville.

As tu une solution pour cela sltp ?
0
wambus Messages postés 9 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 13 septembre 2018
10 juil. 2017 à 18:54
Une fois de plus merci Gérard surtout pour la vitesse de réponse.

Cela peut très bien m'aller, Cependant comme je l'ai précisé au départ je ne m'y connais pas très bien en VBA, je suis encore en cours d’auto apprentissage.

Par conséquent je ne sais comment adapter à mon classeur Excel, car je ne comprend pas les codes vba.
0
gérard > wambus Messages postés 9 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 13 septembre 2018
10 juil. 2017 à 19:22
 
Tu peux aller sur le site mon-partage.fr pour y déposer ton fichier Excel
(sans données confidentielles) ; après clic sur le bouton Uploader, attends
un peu, puis tu auras un lien de téléchargement à copier / coller dans ton
prochain message sur ce forum.

Pour Ctrl c et Ctrl a : je laisserai tel que : il n'y a rien à adapter.

Pour Ctrl f, tu dois m'indiquer précisément quel filtre il faudra
appliquer, cela pour chaque colonne à filtrer.

Exemples de filtres pour la colonne Ville (au choix) :
a) Une seule ville précise ; par exemple "Paris"
b) Les 2 villes "Paris" et "Lyon" (par exemple)
c) Les villes qui comment par P* (=> Paris et Perpignan, par exemple)
d) Les villes entre F* et P* ; pourquoi pas ?  ;)

Exemples de filtres pour la colonne Filière (au choix) :
a) Une seule filière précise ; par exemple "ENA" ou "HEC"
b) Les 2 filières "ENA" et "HEC" (par exemple)
c) Les filières qui comment par E* (=> ENA et ESAM, par exemple)
d) Les filières entre E* et J* ; pourquoi pas ?  ;)

Ça peut aussi être un "mélange" : "Paris" ET ("ENA" OU "HEC")
 
0
wambus Messages postés 9 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 13 septembre 2018 > gérard
11 juil. 2017 à 12:44
Bonjour Gérard. J'ai crée un modèle de mon Classeur Excel.

Les colonnes à filtrer automatiquement sont "Type BAC" et "Ville".

Dans mon Classeur réel j'aurai plusieurs feuilles, donc je ne sais pas si le code s'appliquera sur toutes les feuilles.

Voici le lien de téléchargement: https://mon-partage.fr/f/IJMe4HUy/

Merci d'avance.
0
gérard > wambus Messages postés 9 Date d'inscription jeudi 23 mars 2017 Statut Membre Dernière intervention 13 septembre 2018
11 juil. 2017 à 19:31
 
Bonjour wambus,

Tu n'as pas indiqué les critères de filtre, comme je te l'avais demandé !
J'ai donc choisi, au hasard : les étudiants de Douala qui ont le Bac C.

Ton fichier Excel modifié : https://mon-partage.fr/f/bneSkpY7/

^f => filtre selon les critères indiqués plus haut
^c => efface le filtre (clear)

^a => mode filtre activé ou désactivé (on ou off).

-----------------------------------------------------

Alt F11 pour aller sur Visual Basic ; puis va sur Module2.
⚠  Lis bien tous les commentaires en vert !

Dans la sub SetFiltre(), pour adapter les 2 critères de filtre,
il suffit de modifier les 2 Criteria1 ; exemple :

Si tu veux les étudiants de Yaoundé qui ont le Bac A :

  .AutoFilter Field:=16, Criteria1:="Yaoundé"
  .AutoFilter Field:=6, Criteria1:="A"

⚠  Ne modifie pas 16 et 6, car "Ville" est la 16ème colonne
du tableau et "Type BAC" est la 6ème colonne du tableau.

Je précise « du tableau » car s'il commençait en colonne C (au lieu de A),
ce serait quand même 1 pour la 1ère colonne (C), donc toujours 6 pour
la colonne "Type BAC" (H) ; et toujours 16 pour la colonne "Ville" (R).

Tu peux me demander une adaptation si besoin.

-----------------------------------------------------

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur le lien « Marquer comme résolu ».

À te lire pour avoir ton avis.

Cordialement
 
0