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 :

Tableau Structuré et Filtre avancé [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut Tableau Structuré et Filtre avancé
    Bonjour Forum ,
    Une petite question sur le filtre avancé appliqué à un tableau structuré.
    Quand j'utilise l'enregistreur, voici le code sortant et le résultat est correct :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Sheets("FRED_3").Range("FRED_3[#All]").AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:="SELECT_VERIF!Criteria", CopyToRange:=Range("A10"), Unique _
            :=False
    Mais, lorsque je veux faire retourner ce code, erreur 1004 :
    La méthode AdvancedFilter de la classe Range a échoué.
    Je modifie un peu le Range pour qu'il soit conforme à mes feuilles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Sheets("FRED_3").Range("FRED_3[#All]").AdvancedFilter Action:=xlFilterCopy, _
            CriteriaRange:=Sheets("SELECT_VERIF").Range("SELECT_VERIF!Criteria"), CopyToRange:=Sheets("SELECT_VERIF").Range("A10"), _
            Unique:=False
    Et patatra, erreur 1004 :
    Erreur définie par l'application ou par l'objet.
    Y a-t-il un pilote pour me guider ?
    Un grand merci,

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    As-tu lu cette contribution La méthode AdvancedFilter et l'objet ListObject ?

    Mais, lorsque je veux faire retourner ce code, erreur 1004 :
    Qu'entends-tu par "retourner ce code"
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonjour Philippe,
    J'ai lu ton document, j'ai pris les fichiers et je pense avoir compris.
    Je prends un fichier vierge de copie quelques données, reprends la macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub AdvancedFilterWithListObject()
      Dim areaSource As Range
      Set areaSource = shtData.ListObjects(1).Range
      areaSource.AdvancedFilter xlFilterCopy, Range("areaCriteria"), Range("areaTarget")
      Set areaSource = Nothing
    End Sub
    Tout fonctionne à merveille.

    MAIS (car il y a toujours mais ... )

    Je prends mon fichier de travail et y mets la macro en changeant uniquement le nom d'une feuille :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub AdvancedFilterWithListObject()
      Dim areaSource As Range
      Set areaSource = shtFRED3.ListObjects(1).Range
      areaSource.AdvancedFilter xlFilterCopy, Range("areaCriteria"), Range("areaTarget")
      Set areaSource = Nothing
    End Sub
    Et là, j'ai une erreur 1004 : La méthode AdvancedFilter de la calsse Range a échoué.

    Voici aussi le code sorti de l'enregistreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Range("areaSource").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
            Range("areaCriteria"), CopyToRange:=Range("areaTarget"), Unique:=False
    Et quand j'essaie de réexécuter ce dernier code, même erreur 1004 ....

    Si vous avez une piste, je serai heureux...

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Est-ce que shtFRED3 est bien le CodeName de la feuille où se trouve le tableau structuré ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Re-,
    Effectivement, c'est bien le CodeName.

    Nom : Image.png
Affichages : 1283
Taille : 205,3 Ko

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Et le tableau de cette feuille est vraiment un tableau structuré car si je regarde bien, il semble y avoir deux lignes de titre (ligne 3 et 4) or un tableau structuré doit avoir une ligne de titre ?

    Une simple ligne de code suffira pour le vérifier MsgBox shtFRED3.ListObjects(1).Range.Address
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Philippe,
    Oui, c'est bien un tableau structuré

    Nom : Image .png
Affichages : 1265
Taille : 105,4 Ko



    Nom : Image.png
Affichages : 1295
Taille : 117,4 Ko

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'avoue ne pas comprendre.
    As-tu vérifié avec le compilateur (Onglet [Débogage] commande Compiler VBAProject)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Vérification via ce biais aussi. Et rien du tout.
    Je suis un peu démuni. Je vais continuer à chercher.
    En tout cas, un grand merci pour ton intérêt.

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suis un peu démuni. Je vais continuer à chercher.
    J'avoue que moi également. Si ton classeur ne contient aucune données sensibles, tu peux toujours me le faire parvenir pour que je l'examine.
    C'est un classeur suffixé xlsm ou xlsb ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    C'est un xlsm.

  12. #12
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    OKI, cela se débloque. En fait, ce sont les slicer qui se trouvent sur ma feuille DB qui bloquait la macro. Je viens de les ôter et la macro fonctionne à merveille.

  13. #13
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonsoir QuestVba
    Citation Envoyé par QuestVba Voir le message
    En fait, ce sont les slicer qui se trouvent sur ma feuille DB qui bloquait la macro.
    Désolé d'intervenir après résolution mais je suivais ce poste et je n'arrive pas à comprendre la correction car je ne vois pas ce que sont les 'slicer' : merci d'avance.

  14. #14
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour QuestVba,
    Merci pour ton retour.
    Je vais examiner cela fin de semaine et apporterai une modification à la procédure proposée dans la contribution si les tests confirment ce fait.

    @Anasecu
    Les "Slicers" pour la version anglaise sont les segments que l'on utilise à la fois dans les tableaux croisés dynamiques (depuis la version 2010, si mes souvenirs sont exacts) et pour les tableaux structurés (depuis la version 2013)
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  15. #15
    Membre chevronné
    Inscrit en
    Septembre 2007
    Messages
    1 132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 132
    Points : 1 803
    Points
    1 803
    Par défaut
    Bonsoir Philippe,

    Merci de l'information que je n'avais pas réussi à trouver malgré mes recherches.

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

Discussions similaires

  1. [XL-2013] Filtre avancé et Tableau structuré
    Par Invité dans le forum Excel
    Réponses: 10
    Dernier message: 25/08/2015, 10h19
  2. passage d'un tableau structuré en parametre
    Par babou54 dans le forum Delphi
    Réponses: 11
    Dernier message: 18/05/2007, 12h15
  3. Tableau & Structure
    Par irons dans le forum C
    Réponses: 20
    Dernier message: 08/05/2007, 22h53
  4. "Requête filtre avancé" sur formulaire
    Par Thoomas dans le forum IHM
    Réponses: 1
    Dernier message: 24/11/2006, 16h21
  5. Réponses: 3
    Dernier message: 20/11/2005, 20h04

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