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


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Filtre automatique en VBA
    Bonjour, je suis novice sur VBA et je recherche une solution pour pouvoir selectionner un choix dans un filtre automatique d'Excel en partant d'une valeur dans une cellule précise.
    Ex: la colonne B à un filtre atomatique avec pour choix 1, 2, 3, et 4.
    Je voudrais filtrer la colonne B avec un des choix qui serait saisi dans la cellule D1.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    par exemple s'il y as qu'une colonne B.. dans tes données filtrées...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Range("B1").AutoFilter Field:=1, Criteria1:=[D1]

    tu peu par exemple placer ce code dans le code relatif à la feuille contenant ton filtre automatique et le déclencher sur changement d'état...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address = "$D$1" Then
       Range("B1").AutoFilter Field:=1, Criteria1:=[D1]
     End If
    End Sub

  3. #3
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par kikou44 (MP)
    Merci pour ta réponse mais au risque de paraitre niais, une fois le code saisi, la macro n'est pas reconnu et je ne peux donc pas l'activer !!!
    Comment dois je l'ecrire?
    que ve tu dire par la macro n'est pas reconnu ... ou as tu saisi le code..?

    as tu parcouru les règles du forum ... les Cours et Tutoriels par exmple :
    Cours : Programmer efficacement avec Excel en VBA (pdf, 46 pages, 711 Ko) par J-M Rabilloud

  4. #4
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par bbil
    que ve tu dire par la macro n'est pas reconnu ... ou as tu saisi le code..?
    J'ai ajouté un nouvelle macro en mode enregistrement en partant de ma feuille Excel pour entrer ton code a l'interrieur.

  5. #5
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    et tu as mi quoi comme code ... la 1° ligne..?.. bon je comprens pas ce que tu as fait...

  6. #6
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut filtre automatique VBA
    Citation Envoyé par bbil
    et tu as mi quoi comme code ... la 1° ligne..?
    J'ai ecrit ton code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address = "$D$1" Then
       Range("B1").AutoFilter Field:=1, Criteria1:=[D1]
     End If
    End Sub

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    voila ce qu'il faut faire ... donc tu as as une feuille avec le fitre automatique... (garde son nom en mémoire). .. puis depuis excel .. Menu outils/Visual basic editor (ou Alt-F11)... du passe dans l'editeur de projet à gauche tu devrai avoir une arborescence avec ton nom de classeur en haut.. du bouton droit de la souris tu clique sur le nom de la feuille contenant le filtre automatique et tu sélectionne code....ensuite tu y copie les quatres lignes de codes ..Worksheet_change....

    tu reviens sur ta feuille excel et tu modifie la valeur en D1 ... cela devrai lancer la macro...

    mais ... pense surtout que tu as de la lecture (voir ma signature..)

  8. #8
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Filtre automatique VBA
    Citation Envoyé par bbil
    voila ce qu'il faut faire ... donc tu as as une feuille avec le fitre automatique... (garde son nom en mémoire). .. puis depuis excel .. Menu outils/Visual basic editor (ou Alt-F11)... du passe dans l'editeur de projet à gauche tu devrai avoir une arborescence avec ton nom de classeur en haut.. du bouton droit de la souris tu clique sur le nom de la feuille contenant le filtre automatique et tu sélectionne code....ensuite tu y copie les quatres lignes de codes ..Worksheet_change....

    tu reviens sur ta feuille excel et tu modifie la valeur en D1 ... cela devrai lancer la macro...

    mais ... pense surtout que tu as de la lecture (voir ma signature..)

    Super ca marche. Merci a toi.

  9. #9
    Candidat au Club
    Inscrit en
    Juillet 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Probléme de filtre automatique
    Bonjour bbil,
    hier soir tu as trouver une solution pour mon probléme de filtre automatique en VBA sur Excel.
    La solution que tu m'a donné fonctionne bien si la cellule cible se trouve dans la même feuille que la colonne a filtrer. Comment faire si la cellule cible se trouve sur une autre feuille ou un autre classeur ?
    Merci

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Un nouveau sujet pour une suite... Ben ...
    Et en plus on ne voit pas le 1er... alors que (apparemment) il ne s'agit que de "pointer" vers une autre feuille... C'est peut être un peu beaucoup, là ...!

  11. #11
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    bon jmf ta casiment donné la solution... (moi j'étè occupé à modérer ton message..)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address = "$D$1" Then
       ThisWorkBook.Sheets("Feui1").Range("B1").AutoFilter Field:=1, Criteria1:=[D1]
     End If
    End Sub
    il faut placer le code événementiel ci-dessus dans la feuille conteant la cellule "filtre" .. et modifier la ligne de mise à jour en la faisant précéder de la référence au classeur et à la feuille..
    ici j'ai considéré que c'était toujours le même classeur .. et la feuille au nom : "Feuil1"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Filtre automatique en VBA sur plusieurs niveaux
    Par jlduboc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/05/2015, 16h46
  2. [XL-2007] Filtre automatique et VBA
    Par lps02 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/03/2012, 23h03
  3. [XL-2000] selection d'un champs d'un filtre automatique en vba
    Par jerem1 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/12/2010, 22h01
  4. [Toutes versions] Filtre automatique avec vba
    Par sabzzz dans le forum Contribuez
    Réponses: 0
    Dernier message: 13/04/2010, 21h17
  5. [VBA] exportation vers excel - filtres automatiques?
    Par Christophe93250 dans le forum Access
    Réponses: 10
    Dernier message: 06/01/2006, 16h36

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