OVH Cloud OVH Cloud

Problème , le tableau reprend les données pourtant filtrées

4 réponses
Avatar
Bernard
Bonjour,
1) Sur une feuille j'ai des données avec un filtre automatique actif.
(J'effectue un tri des données grâce à ce filtre)

Je voudrais construire un tableau croisé dynamique à partir de cette feuille
mais il prend en compte les lignes masquées par mon filtre .
Comment modifier la macro pour que les données du tableau croisé dynamique
correspondent aux seules données visibles à l'écran (c'est à dire aux
données filtrées) ?

Merci pour votre aide .

code du tableau croisé dynamique :

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"ANALYSE!R1C1,R29C7", TableDestination:= _
"'[Suivi def énergies2.xls]TABLEAU'!R2C1", TableName:= _
"Tableau croisé dynamique2"
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields
RowFields:= _
BilanChoisi, ColumnFields:="Défaut"
ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Défaut"). _
Orientation = xlDataField

4 réponses

Avatar
Philippe.R
Bonjour Bernard,
Peut être une piste du côté de la copie de cette réponse donnée par Camille :
"====================================================================="
Bonjour,

Il faut faire une selection des cellules visibles
seulement (Menu Edition/Atteindre/Cellules/Cellules
visibles seulement). En macro :

Selection.SpecialCells(xlCellTypeVisible).Select

Camille

-----Message d'origine-----
Bonjour,

J'ai un très grand tableau avec des lignes vides un peu
n'importe ou pour une question de mise en forme et je
souhaite récupérer le contenu de ce tableau dans un objet
Range mais sans les lignes vides.

Pour éliminer les lignes vide j'utilise la commande :

Selection.AutoFilter field:=3, Criteria1:="<>"

Et pour récupérer le résultat :

Set MaPlage = ActiveSheet.AutoFilter.Range

Le problème est que MaPlage contient toutes les données.
C'est à dire sans l'application du filtre.
Je galère complètement sur ce truc là ! Si quelqu'un peu
me dire comment récupérer le résultat exact d'un filtre !

Merci par avance
Guillaume
.
"======================================================================="

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Bernard" a écrit dans le message de news:eOrAJ$
Bonjour,
1) Sur une feuille j'ai des données avec un filtre automatique actif.
(J'effectue un tri des données grâce à ce filtre)

Je voudrais construire un tableau croisé dynamique à partir de cette feuille
mais il prend en compte les lignes masquées par mon filtre .
Comment modifier la macro pour que les données du tableau croisé dynamique
correspondent aux seules données visibles à l'écran (c'est à dire aux
données filtrées) ?

Merci pour votre aide .

code du tableau croisé dynamique :

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"ANALYSE!R1C1,R29C7", TableDestination:= _
"'[Suivi def énergies2.xls]TABLEAU'!R2C1", TableName:= _
"Tableau croisé dynamique2"
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields
RowFields:= _
BilanChoisi, ColumnFields:="Défaut"
ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Défaut"). _
Orientation = xlDataField





Avatar
Bernard
Merci pour ta réponse
Je vais essayer
Bernard

"Philippe.R" a écrit dans le message news:

Bonjour Bernard,
Peut être une piste du côté de la copie de cette réponse donnée par
Camille :

"====================================================================="
Bonjour,

Il faut faire une selection des cellules visibles
seulement (Menu Edition/Atteindre/Cellules/Cellules
visibles seulement). En macro :

Selection.SpecialCells(xlCellTypeVisible).Select

Camille

-----Message d'origine-----
Bonjour,

J'ai un très grand tableau avec des lignes vides un peu
n'importe ou pour une question de mise en forme et je
souhaite récupérer le contenu de ce tableau dans un objet
Range mais sans les lignes vides.

Pour éliminer les lignes vide j'utilise la commande :

Selection.AutoFilter field:=3, Criteria1:="<>"

Et pour récupérer le résultat :

Set MaPlage = ActiveSheet.AutoFilter.Range

Le problème est que MaPlage contient toutes les données.
C'est à dire sans l'application du filtre.
Je galère complètement sur ce truc là ! Si quelqu'un peu
me dire comment récupérer le résultat exact d'un filtre !

Merci par avance
Guillaume
.
"======================================================================="

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Bernard" a écrit dans le message de
news:eOrAJ$

Bonjour,
1) Sur une feuille j'ai des données avec un filtre automatique actif.
(J'effectue un tri des données grâce à ce filtre)

Je voudrais construire un tableau croisé dynamique à partir de cette
feuille


mais il prend en compte les lignes masquées par mon filtre .
Comment modifier la macro pour que les données du tableau croisé
dynamique


correspondent aux seules données visibles à l'écran (c'est à dire aux
données filtrées) ?

Merci pour votre aide .

code du tableau croisé dynamique :

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"ANALYSE!R1C1,R29C7", TableDestination:= _
"'[Suivi def énergies2.xls]TABLEAU'!R2C1", TableName:= _
"Tableau croisé dynamique2"
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields
RowFields:= _
BilanChoisi, ColumnFields:="Défaut"
ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Défaut"). _
Orientation = xlDataField









Avatar
Bernard
J'y suis arrivé en copiant dans un tableau intermédiaire et seulemnt ensuite
je fais le croisé dyanamique.
Merci pour le code proposé, il fonctionne....

Philippe.R" a écrit dans le message news:

Bonjour Bernard,
Peut être une piste du côté de la copie de cette réponse donnée par
Camille :

"====================================================================="
Bonjour,

Il faut faire une selection des cellules visibles
seulement (Menu Edition/Atteindre/Cellules/Cellules
visibles seulement). En macro :

Selection.SpecialCells(xlCellTypeVisible).Select

Camille

-----Message d'origine-----
Bonjour,

J'ai un très grand tableau avec des lignes vides un peu
n'importe ou pour une question de mise en forme et je
souhaite récupérer le contenu de ce tableau dans un objet
Range mais sans les lignes vides.

Pour éliminer les lignes vide j'utilise la commande :

Selection.AutoFilter field:=3, Criteria1:="<>"

Et pour récupérer le résultat :

Set MaPlage = ActiveSheet.AutoFilter.Range

Le problème est que MaPlage contient toutes les données.
C'est à dire sans l'application du filtre.
Je galère complètement sur ce truc là ! Si quelqu'un peu
me dire comment récupérer le résultat exact d'un filtre !

Merci par avance
Guillaume
.
"======================================================================="

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Bernard" a écrit dans le message de
news:eOrAJ$

Bonjour,
1) Sur une feuille j'ai des données avec un filtre automatique actif.
(J'effectue un tri des données grâce à ce filtre)

Je voudrais construire un tableau croisé dynamique à partir de cette
feuille


mais il prend en compte les lignes masquées par mon filtre .
Comment modifier la macro pour que les données du tableau croisé
dynamique


correspondent aux seules données visibles à l'écran (c'est à dire aux
données filtrées) ?

Merci pour votre aide .

code du tableau croisé dynamique :

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"ANALYSE!R1C1,R29C7", TableDestination:= _
"'[Suivi def énergies2.xls]TABLEAU'!R2C1", TableName:= _
"Tableau croisé dynamique2"
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields
RowFields:= _
BilanChoisi, ColumnFields:="Défaut"
ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Défaut"). _
Orientation = xlDataField









Avatar
Philippe.R
C'était avec plaisir Bernard, merci pour le retour d'information.
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Bernard" a écrit dans le message de news:

J'y suis arrivé en copiant dans un tableau intermédiaire et seulemnt ensuite
je fais le croisé dyanamique.
Merci pour le code proposé, il fonctionne....

Philippe.R" a écrit dans le message news:

Bonjour Bernard,
Peut être une piste du côté de la copie de cette réponse donnée par
Camille :

"====================================================================="
Bonjour,

Il faut faire une selection des cellules visibles
seulement (Menu Edition/Atteindre/Cellules/Cellules
visibles seulement). En macro :

Selection.SpecialCells(xlCellTypeVisible).Select

Camille

-----Message d'origine-----
Bonjour,

J'ai un très grand tableau avec des lignes vides un peu
n'importe ou pour une question de mise en forme et je
souhaite récupérer le contenu de ce tableau dans un objet
Range mais sans les lignes vides.

Pour éliminer les lignes vide j'utilise la commande :

Selection.AutoFilter field:=3, Criteria1:="<>"

Et pour récupérer le résultat :

Set MaPlage = ActiveSheet.AutoFilter.Range

Le problème est que MaPlage contient toutes les données.
C'est à dire sans l'application du filtre.
Je galère complètement sur ce truc là ! Si quelqu'un peu
me dire comment récupérer le résultat exact d'un filtre !

Merci par avance
Guillaume
.
"======================================================================="

--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002

"Bernard" a écrit dans le message de
news:eOrAJ$

Bonjour,
1) Sur une feuille j'ai des données avec un filtre automatique actif.
(J'effectue un tri des données grâce à ce filtre)

Je voudrais construire un tableau croisé dynamique à partir de cette
feuille


mais il prend en compte les lignes masquées par mon filtre .
Comment modifier la macro pour que les données du tableau croisé
dynamique


correspondent aux seules données visibles à l'écran (c'est à dire aux
données filtrées) ?

Merci pour votre aide .

code du tableau croisé dynamique :

ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
"ANALYSE!R1C1,R29C7", TableDestination:= _
"'[Suivi def énergies2.xls]TABLEAU'!R2C1", TableName:= _
"Tableau croisé dynamique2"
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields
RowFields:= _
BilanChoisi, ColumnFields:="Défaut"
ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Défaut"). _
Orientation = xlDataField