Filtre avancés depuis/vers tableau structuré

Bonjour,

J'ai besoin de votre aide car je souhaite avoir plusieurs tableaux structurés qui vont chercher des lignes complètes de données depuis un tableau structuré Récapitulatif avec un critère.

Le tableau Récapitulatif est sur une feuille et chaque tableau de destination se trouve sur des feuilles différentes chacuns avec leur critère.

Je vous montre le code utilisé actuellement, il me pose problème car je retranscris sur une ligne donnée [A7:H7] et non sur un tableau donné Tableau1 :

Private Sub Worksheet_Activate() 
Sheets("Base").[A1:N10000].AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=[A1:A2], CopyToRange:=[A7:H7]
End Sub

Pouvez-vous m'aider à définir mon CopyToRange pour que les données soit envoyés dans le tableau structuré et qu'il se dimensionne en fonction des lignes ajoutées ?

Le code peut être entièrement revu j'ai pas de soucis la dessus ;-)

Merci d'avance !!

Bonjour

Excel 2020 n'existe pas : peux tu STP vérifier ta version et corriger ton profil.

Un filtre avancé ne peux extraire vers un tableau structuré, il faut convertir après

De plus un filtre avancé écrase l'extraction précédente et ne s'y ajoute pas

Attention à bien spécifier les feuilles des plages critères et destination

Bonjour,

Merci pour ta réponse très rapide.

- Fait

- Arf c'est ce que je craignais, après de multiples test de syntaxe, je n'y suis pas parvenu...

- Pas de soucis la dessus, mon tableau structuré de destination n'a vocation qu'a accueillir les données de ce filtre.

Est ce que j'aurais une autre méthode d'extraction selon critère, avec mes tableaux structurés ?

RE

Si la source est un tableau structuré tu peux utiliser cette syntaxe

Sheets("Base").Range("NomTableau[#All]").AdvancedFilter Action:=xlFilterCopy, _
    CriteriaRange:=Worksheets("NomFeuille").Range("A1:A2"), CopyToRange:=Worksheets("NomFeuille").Range("A7:H7"), Unique:=False

et tu peux ajouter ensuite si besoin

    Sheets("NomFeuille").ListObjects.Add(xlSrcRange, Sheets("NomFeuille").Range("$A$7").CurrentRegion, , xlYes).Name = "Extrait"
    Sheets("NomFeuille").ListObjects("Extrait").TableStyle = "TableStyleLight9"

Mais dans ce dernier cas tu ne pourras pas réextraire vers ce même emplacement sauf à supprimer au préalable le tableau ou le convertir en plage

Re

Merci de ta réponse.

Effectivement mon besoin principal est d'extraire continuellement du tableau Récap vers chaque tableaux.

Une seule extraction ne peut pas fonctionner. Le filtre avancé en VBA serait parfait mais avec les tableaux structurés.

Bonjour

Alors c'est sans doute plutôt PowerQuery

Mais sans aucun fichier on ne peut avancer

Re,

D'accord mais alors là je connais pas du tout le PowerQuery.

Mais je suis prêt à explorer si tu accepte de me mettre sur la bonne voie.

Je te joins mon fichier de base regroupant mes besoins.

14filtreavances.xlsm (17.01 Ko)

RE

Et à part les Hommes tu extrais quoi ?

Si l’onglet se nomme Hommes, est-il utile de laisser la colonne Sexe ?

Ce fichier est une mise en situation de mes besoins. Je l'ai fait pour enlever les données sensible dessus.

Le but est d'extraire les lignes Sexe=M dans la tableau Homme et aussi Sexe=F dans le tableau Femme mais inutile de mettre tableau Femme pour l'exemple. Tant qu'on sait le faire sur un tableau ça ne seras qu'à répéter.

RE

PowerQuery travaille précisément sur les titres de colonnes : donc soit je donne et requête de base et tu t'en débrouilles, soit on modélise sur la base d'une vraie structure même si les contenus sont bidons

On peut modéliser sur le fichier que j'ai envoyé. Il est identique à mes besoins sur la forme.

Peut être effectivement juste la colonne Sexe que je répèterais pas sur le tableau Homme mais c'est tout.

Merci d'avance pour ton investissement.

RE
29extraction-pq.xlsx (25.82 Ko)

WOOOOW

Alors ca c'est génial maintenant faut que je comprenne. Merci énormément à toi.

RE

Actualiser pour tenir compte des modifs de la source

Oui c'est ce que j'ai vu, maintenant je sais à quoi sert le actualiser tout XD

J'ai un petit problème avec le PQ, il ne transfère pas les couleurs de cellule.

Pour certaines infos je fonctionne par couleur (vert/rouge) pour validation mais le PQ ne transfère pas. Comment faire ?

Bonjour

Si la couleur est liée à la valeur, une MFC suffit

Sinon, on le dit et le répète dans tous les forums, la couleur ne doit pas être une information, juste une mise ne évidence. Excel ne la traite pas en dehors depuis 2007 des tris et filtres.

Le filtre avancé, dont tu es parti, a cette particularité d'extraire les cellules avec leur format, un peu comme un copier coller, ce qui est d'ailleurs jugé gênant la plupart du temps.

PowerQuery suit la logique des bases de données où la valeur de la donnée et sa représentation sont bien distincts.

Compris, je vais changer ma façon de faire dans ce cas.

Au lieu de Vert ça seras OK et au lieu de rouge bas ça seras vide. ^^'

Merci pour ton aide.

Rechercher des sujets similaires à "filtre avances tableau structure"