Filtre
Résolu
Jennib370
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche une fonction pour filtrer un tableau à partir d'une donnée dans une cellule.
J'ai tenté de créer une macro sans VBA (parce que je ne m'y connais pas du tout) en copiant le nom de l'établissement pour m'afficher seulement les informations sur cet établissement et ça facontionne. Par contre je dois refaire ma macro à chaque tableau car le nom de l'établissement change, donc pas très pratique quand tu en as 17 à faire ;)
Alors je me suis dit si je peux filtrer le nom de l'établissement qui se trouve dans la cellule A2, je ferai que changer le nom de l'établissement A2 et le filtre se fera à partir de A2 ? Est-ce que c'est compréhensible?
Merci beaucoup!
Je cherche une fonction pour filtrer un tableau à partir d'une donnée dans une cellule.
J'ai tenté de créer une macro sans VBA (parce que je ne m'y connais pas du tout) en copiant le nom de l'établissement pour m'afficher seulement les informations sur cet établissement et ça facontionne. Par contre je dois refaire ma macro à chaque tableau car le nom de l'établissement change, donc pas très pratique quand tu en as 17 à faire ;)
Alors je me suis dit si je peux filtrer le nom de l'établissement qui se trouve dans la cellule A2, je ferai que changer le nom de l'établissement A2 et le filtre se fera à partir de A2 ? Est-ce que c'est compréhensible?
Merci beaucoup!
Configuration: Windows / Chrome 89.0.4389.90
A voir également:
- Filtre
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Filtre whatsapp - Accueil - Messagerie instantanée
- Filtre teams - Accueil - Visio
- Filtre manga - Accueil - TikTok
- Télécharger filtre lumière bleue pc gratuit - Télécharger - Divers Utilitaires
4 réponses
Bonsoir
Compréhensible non !
Une macro sans VBA ça n'existe pas
Soit tu as un tableau avec les noms dans une colonne et tu peux utiliser le filtre sur cette colonne et donc filtrer les données sur place pas besoin d'autre manip
soit tu veux choisir un établissement (dans une liste déroulante) et faire afficher les infos correspondantes (et là tu le fais avec des RECHERCHEV ou des INDEX EQUIV)
Il faut nous fournir un exemple de ton fichier (anonymisé avant si nécessaire) en le postant sur mon-partage.fr ou cjoint.com, en copiant le lien créé et en revenant le coller ici en expliquant dans le fichier avec un exemple précis ce que tu cherches à obtenir
et là on pourra sans doute t'aider
Cdlmnt
Via
Compréhensible non !
Une macro sans VBA ça n'existe pas
Soit tu as un tableau avec les noms dans une colonne et tu peux utiliser le filtre sur cette colonne et donc filtrer les données sur place pas besoin d'autre manip
soit tu veux choisir un établissement (dans une liste déroulante) et faire afficher les infos correspondantes (et là tu le fais avec des RECHERCHEV ou des INDEX EQUIV)
Il faut nous fournir un exemple de ton fichier (anonymisé avant si nécessaire) en le postant sur mon-partage.fr ou cjoint.com, en copiant le lien créé et en revenant le coller ici en expliquant dans le fichier avec un exemple précis ce que tu cherches à obtenir
et là on pourra sans doute t'aider
Cdlmnt
Via
Bonjour,
Je me suis mal exprimer... je voulais dire que j'ai créé une macro avec le bouton "enregistrer une macro" mais je n'ai pas saisi les codes VBA manuellement.
Et je comprends aussi que j'aurais dû vous mentionner que ce tableau qui se nomme par le nom de l'établissement, est lié à partir d'un autre tableau, qui se nomme Base de donnée des établissements où toutes l'informations de tous les établissements se trouvent.
Donc en exécutant cette macro, elle "refiltre" la tableau, donc se met à jour.
Merci pour votre réponse.
Je me suis mal exprimer... je voulais dire que j'ai créé une macro avec le bouton "enregistrer une macro" mais je n'ai pas saisi les codes VBA manuellement.
Et je comprends aussi que j'aurais dû vous mentionner que ce tableau qui se nomme par le nom de l'établissement, est lié à partir d'un autre tableau, qui se nomme Base de donnée des établissements où toutes l'informations de tous les établissements se trouvent.
Donc en exécutant cette macro, elle "refiltre" la tableau, donc se met à jour.
Merci pour votre réponse.
Re,
Et moi j'ai mal interprété et pas compris que tu avais enregistré une macro
Dans ce cas dans cet enregistrement (Alt+fF1 pour ouvrir l'éditeur VBA puis aller dans Module 1 en principe) tu dois avoir une ligne de ce style :
ActiveSheet.Range("$A$1:$K$121").AutoFilter Field:=3, Criteria1:="Etablissement AAA"
dans laquelle le critère de filtre est indiqué "en dur"
tu peux très bien le remplacer par une référence à la cellule A2 de ta feuille comme tu as bien pensé, il faut remplacer simplement le "Etablissement AAA" par Range("A2"), la ligne devenant ainsi (chez moi) :
ActiveSheet.Range("$A$1:$K$121").AutoFilter Field:=3, Criteria1:=Range("A2")
Ainsi tu pourras comme tu voulais, faire une MAJ après chaque changement en A2 e lançant la macro
On pourrait même prévoir de lancer la macro automatiquement à chaque changement en A2
Pour cela dans l’arborescence à gauche de l'éditeur VBA il faut double cliquer sur le nom de la feuille depuis laquelle cela doit s'apliquer puis dans la page blanche coller la macro suivante
(en adaptant la plage de ton tableau chez moi A1:K121, et la colonne du filtre la 3 chez moi)
Et moi j'ai mal interprété et pas compris que tu avais enregistré une macro
Dans ce cas dans cet enregistrement (Alt+fF1 pour ouvrir l'éditeur VBA puis aller dans Module 1 en principe) tu dois avoir une ligne de ce style :
ActiveSheet.Range("$A$1:$K$121").AutoFilter Field:=3, Criteria1:="Etablissement AAA"
dans laquelle le critère de filtre est indiqué "en dur"
tu peux très bien le remplacer par une référence à la cellule A2 de ta feuille comme tu as bien pensé, il faut remplacer simplement le "Etablissement AAA" par Range("A2"), la ligne devenant ainsi (chez moi) :
ActiveSheet.Range("$A$1:$K$121").AutoFilter Field:=3, Criteria1:=Range("A2")
Ainsi tu pourras comme tu voulais, faire une MAJ après chaque changement en A2 e lançant la macro
On pourrait même prévoir de lancer la macro automatiquement à chaque changement en A2
Pour cela dans l’arborescence à gauche de l'éditeur VBA il faut double cliquer sur le nom de la feuille depuis laquelle cela doit s'apliquer puis dans la page blanche coller la macro suivante
(en adaptant la plage de ton tableau chez moi A1:K121, et la colonne du filtre la 3 chez moi)
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2")) Is Nothing Then '1er Range est la plage du tableau - Field est la colonne du filtre - Le 2nd range est la cellule où se trouve le critère du filtre ActiveSheet.Range("$A$1:$K$121").AutoFilter Field:=3, Criteria1:=Range("A2") End If End Sub
J'ai trouvé! J'enregistre ma macro en appuyant sur Ctrl C pour copier ma cellule A1, je clique sur mon bouton filtrer de ma colonne et dans la section Recherche je colle ce que je viens de copier, simplement! J'allais chercher trop loin.
Il a surement mieux que cette façon, mais pour mes besoins c'est parfait pour l'instant! :)
Il a surement mieux que cette façon, mais pour mes besoins c'est parfait pour l'instant! :)