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 :

lever les filtres en quittant un fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Par défaut lever les filtres en quittant un fichier
    bonjour à tous

    Dans mon entreprise, nous utilisons Excell 2007.
    Nous travaillons à plusieurs ( non simultanément ) sur des fichiers excell contenant beaucoup de données.
    Afin de s'y retrouver au sein de ces fichiers, nous avons posé des filtres sur les colonnes.
    La consigne interne est la suivante : lorsque l'on ferme un fichier, il faut cocher la case "sélectionner tout" pour chaque filtre afin que le collègue suivant ait, dès l'ouverture, la totalité des informations sous les yeux.

    Sur certains fichiers il y a une bonne douzaine de filtres et l'opération est un peu longue dans certains cas, et zappée par certains.

    J'aimerai savoir s'il existe une possibilité d'automatiser cette manipulation ( RAZ de tous les filtres ) lorsque l'on ferme un fichier . Une macro pourrait peut être remplir cette fonction ou un bouton sur le classeur excell.

    J'espère avoir été clair et suis ouvert à toutes questions.
    Merci de votre aide
    Pierre

  2. #2
    Expert confirmé
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Par défaut
    Bonjour,

    Filtres automatiques ou avancés ?

    vois, dans l'aide vba, du côté de :

    si tu veux les forcer aux bonnes habitudes :

    FilterMode, propriété

    sinon :

    AutoFilter, méthode
    AdvancedFilter, méthode etc...

    vois ici "Si le filtre automatique existait déjà, celui-ci sera désactivé." aussi

    cordialement,

    Didier

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut renton59 et le forum
    Sur le module ThisWorkBook tu peux essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    AutoFilterMode = False
    FilterMode = False
    End Sub
    Mais, sur la feuille active, ça ne rend pas visibles tous les enregistrement, ça supprime le mode filtre. Il faudrait sans doute les recréer ensuite, mais là, on a pas assez d'infos (plage de titre, ça concerne une ou plusieurs feuilles, etc...)
    A+

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 57
    Par défaut
    De la même façon, pour remettre les filtre à l'ouverture, dans la feuille ThisWorkbook:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Workbook_Open()
    Dim f As Worksheet, r As Range
        For Each f In ActiveWorkbook
            Set r = Range(f.Range("A1"), f.Range("A1").End(xlToRight))
            r.AutoFilter
        Next
    End Sub
    Pour mettre un filtre automatique si les entêtes sont sur la première ligne de chaque feuille

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Par défaut
    Merci pour vos réponses et excusez le temps considérable que je met à réagir (j'ai eu beaucoup de taf).

    Autant prévenir tout se suite, je ne suis pas un développeur et je maitrise mal les macros sous excell.
    Cependant, j'ai testé les deux solution proposées.

    Celle proposée par meud007 me renvoir une erreur d'exécution 438.
    "propriété ou méthode non gérée par cet objet"
    il surligne ensuite la ligne suivante :
    For Each f In ActiveWorkbook

    Au survol de la lettre f, c 'est écrit f=nothing

    Celle proposée par Gorfael ne renvoit pas d'erreur mais ne répond pas à mon besoin.

    Je vais tenter de mieux expliquer mon besoin.
    J'ai une feuille de calcul avec une dizaine de colonnes. Chaque colonne contient une entête ou est inscrit la nature des infos contenues dans les colonnes ( Nom, prénom, adresse ... )
    Sur chaque entête de colonne, il y a un menu déroulant permettant de sélectionner soit tout ( sélectionner tout ) ou soit cocher les éléments que l'on veux voir dans la colonne ( Nom 1, Nom 2, Nom 3... ) afin d'y voir plus clair.

    Mon objectif est le suivant.:
    Je travaille sur la fiche, fait des modifications sur certains noms et fait en sorte que l'intégralité des noms ne soit pas visible.
    J'enregistre les modifications mais je ne prends pas la peine de recliquer sur chacune des cases "sélectionner tout" de chaque colonne.
    Je souhaiterai que lors de l'ouverture suivante, toutes les cases selectionner tout de tous les filtres soient cochées et l'ensemble des valeurs de tout la feuillle soit visible.

    J'espère avoir été clair et vous remercie par avance du temps que vous prendrez pour me lire.

    Pierre

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Dans le module du classeur (ThisWorkbook, par défaut),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
      Dim ws As Worksheet
     
      For Each ws In Worksheets()
        If ws.FilterMode = True Then ws.ShowAllData
      Next ws
    End Sub
    Ce code teste si la feuille possède un filtre automatique, et dans l'affirmative, affiche toutes les données.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 4
    Par défaut Dans le mille
    Bonjour

    C'est exactement le résultat que j'attendais.
    J'ouvre le fichier, coche les filtres comme bon me semble, fais mes modifications puis les enregistre.
    Je ferme le fichier sans prendre la peine de cocher de nouveau toutes les boites de dialogue "Selectionner tout" pour chaque filtre.

    Lors de l'ouverture suivante, je découvre l'intégralité des données de ma feuille ( équivalent à toutes les cases "selectionner tout" cochées).

    Merci beaucoup, c est tout ce que je recherchais.
    Mine de rien, ca fait gagner du temps et de la bonne humeur pour le travail collaboratif.

    Encore Merci
    Pierre
    Comment met on le petit "Résolu" ... quelqu'un a une macro pour cela ?

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/01/2009, 20h11
  2. Réponses: 6
    Dernier message: 17/11/2005, 14h39
  3. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 17h13
  4. Réponses: 5
    Dernier message: 16/03/2005, 22h17
  5. Réponses: 9
    Dernier message: 03/03/2005, 14h36

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