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 :

Tester si filtre actif


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 123
    Par défaut Tester si filtre actif
    Salut le forum

    Dans une macro j'ouvre un fichier par la méthode getobject, et je souhaite vérifier si dans la feuille "client" le filtreautomatique est actif, et si oui je souhaite le désactiver???

    Voici le code auquel je pensais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set DonneesAdministratives = GetObject("R:\DonneesClients\DonneesAdministratives\DonneesAdministratives.xlsx")
    If DonneesAdministratives.Worksheets("client").AutoFilterMode = True Then  
       DonneesAdministratives.Worksheets("client").AutoFilterMode = False 
    End If
    Mais ça plantouille

    @+ Jean

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bopnjour,

    Lisons l'Aide VBA, qui dit :




    True if the AutoFilter drop-down arrows are currently displayed on the sheet. This property is independent of the FilterMode property. Read/write Boolean.

    Remarks

    This property returns True if the drop-down arrows are currently displayed. You can set this property to False to remove the arrows, but you cannot set it to True. Use the AutoFilter method to filter a list and display the drop-down arrows.
    Une fois fixé à False (AutofilterMode = False), les flèches disparaissent...
    Pour les faire réapparaître, il faut définir un range et utiliser la méthode AutoFilter pour les rétablir (pas passer à True le AutoFilterMode) ...

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 123
    Par défaut
    Ce que je ne comprends pas c'est que j'ai utilisé le code ci-après :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Workbooks("EncoursProduction.xlsm").Worksheets("EncoursAtelier").Activate   'Activation feuille EncoursAtelier
    If Worksheets("EncoursAtelier").AutoFilterMode = True Then                  'Test si filtre est activé
       Worksheets("EncoursAtelier").AutoFilterMode = False                      'Si oui désactivation
    End If
    et ça fonctionne!

    Je souhaite maintenant le transcrire pour un fichier excel ouvert par la méthode getobject

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Teste ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim Wbk As Workbook, Wsh As Worksheet
     
    Set Wbk = Workbooks.Open(Filename:="R:\DonneesClients\DonneesAdministratives\DonneesAdministratives.xlsx")
    Set Wsh = Wbk.Sheets("client")
     
    If Wsh.AutoFilterMode = True Then Wsh.AutoFilterMode = False
     
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 123
    Par défaut
    Ce code fonctionne pas de soucis....

    Mais ce que j'essaie de faire, consiste à tester autofilter sur un fichier qui n'est pas ouvert : d'où l'utilisation de getobject....

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Morbihan (Bretagne)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 123
    Par défaut
    Par ailleurs le test fonctionne bien...ce qui ne fonctionne pas c'est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("EncoursAtelier").AutoFilterMode = False
    C'est à ce moment là que ma macro plante !!!

  7. #7
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Citation Envoyé par Jeanvaljean44 Voir le message
    Ce code fonctionne pas de soucis....

    Mais ce que j'essaie de faire, consiste à tester autofilter sur un fichier qui n'est pas ouvert : d'où l'utilisation de getobject....
    Je ne pense pas que cela est réalisable de manipuler l'autofiltre dans un fichier fermé au même titre qu'on ne peut pas manipuler des objets.

Discussions similaires

  1. [XL-2007] Ecrire des données en tenant compte des filtres actifs
    Par clao260 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/12/2012, 20h13
  2. [Toutes versions] Appliquer le filtre actif sur un formulaire à une requête
    Par francoism27 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/01/2011, 00h18
  3. APISOFT tester VERR MAJ actif ou non
    Par prosciuto dans le forum VBScript
    Réponses: 5
    Dernier message: 30/07/2009, 11h18
  4. Filtre actif oui ou non ?
    Par will-1981 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 06/04/2008, 20h41
  5. Récupérer le filtre actif d'un formulaire
    Par popof60 dans le forum IHM
    Réponses: 10
    Dernier message: 19/03/2007, 14h19

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