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 :

[VBA-E]Filtre via une macro sur Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut [VBA-E]Filtre via une macro sur Excel
    Voilà, je cherche à faire une macro qui permet de faire un filtre selon une valeur saisie sur une cellule.

    Comment faire car le filtre de base ne permet pas de s'asscocier à une cellule???


    En bref : voilà ma macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.AutoFilter Field:=14, Criteria1:=">0,35", Operator:=xlAnd
    Comment avoir le criètre de filtre (0,35) liée à une cellule?

    Merci d'avance !!!

  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 040
    Points
    20 040
    Par défaut
    ben je crois que la solution passe par une macro événementielle qui sur changement d'état de ta "cellule liés" ... met à jour le filtre..

    du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Worksheet_Change(ByVal Target As Range)
      Dim st
      If Target.Address = "$P$1" Then ' Supposon que le critére de filtre est en P1
       st = ">" & Replace(Target.Value, ",", ".")
        Range("A1").AutoFilter Field:=14, Criteria1:=st
      End If
    End Sub

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut J'ai pas trop compris??
    Ma cellule ce nome : E14
    elle se trouve sur une autre feuille appelé : "MENU"

    Mais je vois pas comment la mettre en application (elle n'aparait pas quand je fait lecture de macro) ???

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut j'ai compris une chose
    Je viens de comprendre le liens entre st et la macro mais j'ai fait une connerie car ça marche pas !

    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
    Sub Macro5()
    '
    ' Macro5 Macro
     
        Range("N1").Select
        Selection.AutoFilter Field:=14, Criteria1:=st, Operator:=xlAnd
    End Sub
     
    Private Sub Worksheet_Change(ByVal Target As Range)
     
      Dim st
      If Target.Address = Sheets("MENU").select "$E$14" Then
       st = ">" & Replace(Target.Value, ",", ".")
        Range("N1").AutoFilter Field:=14, Criteria1:=st
      End If
    End Sub

  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 040
    Points
    20 040
    Par défaut
    si tu as 2 feuilles il va falloir adapter le code ..., ce code est à mettre dans le code associé à la feuille Menu .. voir explorateur de projet (à gauche), affichage explorateur de projet ,puis clic droit sur la feuille..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Worksheet_Change(ByVal Target As Range)
      Dim st as string 'variable temporaire..
      If Target.Address = ""$E$14"  Then ' Supposon que le critére de filtre est en E14
       st = ">" & Replace(Target.Value, ",", ".")
        sheets("FEUILLEAFILTRE").Range("N1").AutoFilter Field:=14, Criteria1:=st
      End If
    End Sub
    Remplace le nom FEUILLEAFILTRE par le nom de ta feuille

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 3
    Points
    3
    Par défaut
    T vraiement un bosse toi !

    T'en as pas marre d'avoir toujours les bonne réponse !!!





    En tout cas tout roule sur des roulettes...

Discussions similaires

  1. [2013] Remplacement d'un texte dans word par une macro sur excel
    Par Benoit L dans le forum Microsoft Office
    Réponses: 4
    Dernier message: 06/02/2015, 14h39
  2. Réponses: 1
    Dernier message: 05/03/2014, 16h33
  3. Pb d'insertion d'image avec une macro sur Excel 2007
    Par tigrou42 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/05/2007, 00h48
  4. [[VBA-E]je cherche une macro sur excel qui ouvre un fichier
    Par macromega dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/05/2007, 09h25
  5. [VBA-E] Comment appliquer une macro sur plusieurs cellules
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/01/2007, 10h54

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