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] Filtrage de différentes plages d'une même colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Par défaut (VBA-E] Filtrage de différentes plages d'une même colonne
    Bonjour,

    Je sèche sur ce petit problème:
    Je souhaite filtrer (ne pas afficher) les valeurs différentes de zéro de la plage o3 à o25 et en même temps filtrer (ne pas afficher) les valeurs différentes de "vide" de la plage o27 à o35. J'arrive bien sûr à faire l'un ou l'autre avec Autofilter, mais impossible de faire les deux en même temps...

    Puis je avoir un coup de main?

    Merci

    Le Dab.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Deux critères, ce ne devrait pas être difficile. Montre ton code, on va t'arranger ça (peut-être)
    Tu dois mettre tes opérateurs de comparaison entre guillemets et pour vide, c'est "Empty"
    A+

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Par défaut
    Bon, on ne se moque pas je débute....

    Sur ma feuille xl j'ai deux boutons qui lance le premier cette procédure:

    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
    Sub vide_out()
    Columns("o:o").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="<>", Operator:=xlAnd
    Range("a2").Select
    End Sub
     
    L'autre bouton cette procédure
     
    Sub zero_out()
    Range("O1:O23").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=1, Criteria1:="<>0", Operator:=xlAnd
    Range("a2").Select
    End Sub
    Indépendament j'ai le résultat. Dans la première procédure j'ai essayé range ("o26:o33").select mais ça bogue....

    Je voudrais n'avoir qu'un bouton et une seule procédure...voilà

    Mes excuses d'encombrer le forum mais je suis la dessus depuis un bout de temps...et je débute !!

    Merci

    Le Dab

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,
    en regardant dans l aide vb tu peux ajouter un deuxieme critere de filtrage

    expression.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

    donc dans ton cas
    selection.AutoFilter Field:=1, Criteria1:="<>", Operator:=xlAnd, Criteria2:="<>0"
    ou bien en utilsant empty

    l aide parfois est tres utile

    procedure tester

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Par défaut
    Merci de t'être penché sur mon problème. J'ai bien sûr essayé ta solution (grace à l'aide). mais ce n'est pas ce que je veux.

    De o1 à o23 je ne veux pas les zéros et de o26 à o33 pas les vides mais les zéros s'il y y en a .

    Mes critères de filtres doivent être sur deux plages distinctes d'une même colonne.

    Je me suis peut être mal exprimé, toutes mes excuses.

    Merci encore en tout cas.

    Le dab

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pas si simple en effet. Très facile néanmoins
    Tu ne peux pas faire de filtres multicritères sur des plages différentes.
    Où, dit autrement, tes différents critères, s'il y en a, doivent concerner la même plage.
    Je te suggère une alternative consistant à parcourir ta colonne O et à masquer les lignes de la cellule = 0 jusqu'à ta ligne 23 puis, les lignes = Empty de la ligne 26 à 33
    Sauf que tu parts à l'envers
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For NoLigne = 33 To 26 Step -1
          If Cells(NoLigne, 15) = Empty Then Rows(NoLigne).EntireRow.Hidden = True
    Next
    'Idem pour le 0
    For NoLigne = 25 To 3 Step -1
          If Cells(NoLigne, 15).Value = 0 Then Rows(NoLigne).EntireRow.Hidden = True
    Next
    A+

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 10
    Par défaut
    MERCI, je creuse cette logique.
    J'ai essayé, c'est presque bon mais ça me cache une cellule à zéro dans la plage où je veux cacher les vides mais pas les zéros.

    Question subsidiaire: comment ne pas afficher toutes les petites flèches drop down de filtrage sur toutes les lignes, après lancement de la macro?

    MERCI, MERCI, la soirée va être longue

    Le dab

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 06/05/2011, 22h55
  2. Réponses: 4
    Dernier message: 27/03/2007, 09h49
  3. Réponses: 3
    Dernier message: 06/02/2007, 11h04
  4. GAC & Différentes versions d'une même assembly
    Par Xno dans le forum Framework .NET
    Réponses: 3
    Dernier message: 25/11/2005, 11h22
  5. Sum différents sur sur une même table ...
    Par Saloucious dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/10/2005, 15h51

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