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 de tableau VBA, plusieurs critères [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2014
    Messages : 74
    Par défaut Filtre automatique de tableau VBA, plusieurs critères
    Bonjour à tous et à toutes,

    J'ai un petit problème... Sur une feuille Excel j'ai beaucoup de tableaux nommés tableau1, tableau2 etc...

    Le dernier est tableau(chiffre présent dans un compteur en A55 sur la feuille debours).

    Je voudrai filtrer tous ces tableaux en enlevant les valeurs "*" et "0" de la première colonne.

    Voici la solution que j'ai trouvé:


    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
    18
    Sub Affichercommande() 'Fonction qui permet de filtrer automatiquement les tableaux de la feuille Bon de commande
     
        Dim MyString As String, r As Range, t, i
        MyString = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100"
        t = Split(MyString, ",")
     
        For i = 1 To Sheets("Debours").Range("A55").Value
     
            Set r = Range("Tableau" & i)
     
            With r
                .AutoFilter
                .AutoFilter Field:=1, Criteria1:=t, Operator:=xlFilterValues
            End With
     
        Next
     
    End Sub
    Cependant, si la valeur est supérieure à 100, impossible de gérer le filtre...
    De même pour les nombres à virgules...

    J'espère que vous pourrez m'aider

    Cordialement,

    Antoine

  2. #2
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Citation Envoyé par barbeaua Voir le message
    Cependant, si la valeur est supérieure à 100, impossible de gérer le filtre...
    Quelle valeur ? Dans les noms des tableaux ou dans le contenu des tableaux ?

    Car la ton code fait la chose suivante :
    • Parcours les tableaux du tableau1 au tableau100
    • Pour chaque tableau filtre sur les valeurs entre 1 et 100 dans la colonne 1

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2014
    Messages : 74
    Par défaut Tableau
    Bonjour,

    Il n'y aura jamais plus de 50 tableaux, je peux limiter la boucle.

    Cependant, dans les valeurs de la colonne 1, il peut y avoir des nombres à virgule ou des nombres allant jusqu'à 500.

    J'aimerai pouvoir mettre un filtre "tout afficher sauf 0 et * " :/

  4. #4
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Dans ce cas les choses sont beaucoup plus simple

    Voila un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
        Dim Tableau As ListObject
            For Each Tableau In ActiveSheet.ListObjects
                Tableau.Range.AutoFilter Field:=1, Criteria1:="<>0", Criteria2:="<>~*"
            Next
    End Sub
    Explications :
    • ListObject est un objet qui représente un tableau d'une feuille de calcule.

    • ActiveSheet.ListObjects est la collection de tous les tableaux de la feuille active. Je te conseil d'ailleurs de mettre, à la place d'ActiveSheet, la feuille explicitement.
      ThisWorkbook.Sheets("NomDeLaFeuille") par exemple

    • Tu as deux critères de filtre :
      • Criteria1:="<>0" pour ne pas prendre les valeurs 0
      • Criteria2:="<>~*" pour ne pas prendre les valeurs * (~* car * est un caractère spécial)

  5. #5
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2014
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2014
    Messages : 74
    Par défaut ça fonctionne!
    C'est génial exactement ce qu'il fallait! Merci beaucoup!

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

Discussions similaires

  1. VBA - Remplissage d'un tableau selon plusieurs critères
    Par khroutchev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/07/2013, 15h20
  2. Requête VBA plusieurs critères
    Par Beaudelicius dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/08/2011, 21h34
  3. [XL-2000] Filtre automatique avec plus de deux critères
    Par Shikam dans le forum Excel
    Réponses: 4
    Dernier message: 07/05/2010, 11h16
  4. [XL-2003] Filtre Automatique dans tableau
    Par Tintou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/03/2010, 18h15
  5. Filtre automatique dans combobox VBA
    Par fabien114 dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 06/10/2008, 17h25

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