Bonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
Bonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
Bonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
bonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelleBonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
bonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelle
Bonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
bonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelleBonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
Bonjour Isabelle,
J'espère que vous serez toujours disponible sur ce sujet qui me passionne.
Votre réponse pourrait m'être très utile (4 TCD "commandés par le même tri
de page sur champ dynamique).
Je connais bien (sans être expert pour autant) les TCD, mais je ne connais
pas grand'chose à VBA.
Après avoir fait depuis ma feuille Excel : OutilsMacroNomAppliquer à ce
classeur Créer, j'ai incorporé votre suggestion entre Sub et End Sub puis
j''ai remplacé, dans votre example, le "NomDuChampDePage" par le mien
(Manager) et la référence de la cellule [B1] par la mienne [A3].
J'obtiens donc :
""Sub Nom ()
""Private Sub Worksheet_Calculate()
"" ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Manager").
"" CurrentPage = "" & [A3]
""End Sub
""End Sub
Rien n'y fait et je tourne en rond depuis + d'1 heure. Je n'obtiens rien
automatiquement et si j'essaye d'exécuter la Macro "Nom", j'ai 1 message
d'erreur de compilation : " End Sub attendu" et la première ligne du script
"Sub Nom" apparait flèchée et surlignée en jaune. Malgré l'aide de MS, je ne
sais que faire !
Pourriez-vous expliquer SVP de façon suffisamment détaillée pour un
néophyte, comment mettre correcdtement cette macro sur la page code de la
feuille ?
Par la même occasion, quelle syntaxe adopter SVP pour asservir plusieurs TCD
(2,3,4, ...) se trouvant sur la même feuille de calcul au même champ de page
du TCD1 (lui-même sur la même feuille de calcul que les autresTCD) ?
J'allais oublier: mon OS est Windows 2000 Pro (ou XP Ed Fam au besoin) et je
suis sous Office 2000 Pro mis à jour régulièrement (dans les 2 cas !)
D'avance 1000 merci(s) et bon W-E
DDbonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelleBonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
Bonjour Isabelle,
J'espère que vous serez toujours disponible sur ce sujet qui me passionne.
Votre réponse pourrait m'être très utile (4 TCD "commandés par le même tri
de page sur champ dynamique).
Je connais bien (sans être expert pour autant) les TCD, mais je ne connais
pas grand'chose à VBA.
Après avoir fait depuis ma feuille Excel : OutilsMacroNomAppliquer à ce
classeur Créer, j'ai incorporé votre suggestion entre Sub et End Sub puis
j''ai remplacé, dans votre example, le "NomDuChampDePage" par le mien
(Manager) et la référence de la cellule [B1] par la mienne [A3].
J'obtiens donc :
""Sub Nom ()
""Private Sub Worksheet_Calculate()
"" ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Manager").
"" CurrentPage = "" & [A3]
""End Sub
""End Sub
Rien n'y fait et je tourne en rond depuis + d'1 heure. Je n'obtiens rien
automatiquement et si j'essaye d'exécuter la Macro "Nom", j'ai 1 message
d'erreur de compilation : " End Sub attendu" et la première ligne du script
"Sub Nom" apparait flèchée et surlignée en jaune. Malgré l'aide de MS, je ne
sais que faire !
Pourriez-vous expliquer SVP de façon suffisamment détaillée pour un
néophyte, comment mettre correcdtement cette macro sur la page code de la
feuille ?
Par la même occasion, quelle syntaxe adopter SVP pour asservir plusieurs TCD
(2,3,4, ...) se trouvant sur la même feuille de calcul au même champ de page
du TCD1 (lui-même sur la même feuille de calcul que les autresTCD) ?
J'allais oublier: mon OS est Windows 2000 Pro (ou XP Ed Fam au besoin) et je
suis sous Office 2000 Pro mis à jour régulièrement (dans les 2 cas !)
D'avance 1000 merci(s) et bon W-E
DD
bonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelle
Bonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
Bonjour Isabelle,
J'espère que vous serez toujours disponible sur ce sujet qui me passionne.
Votre réponse pourrait m'être très utile (4 TCD "commandés par le même tri
de page sur champ dynamique).
Je connais bien (sans être expert pour autant) les TCD, mais je ne connais
pas grand'chose à VBA.
Après avoir fait depuis ma feuille Excel : OutilsMacroNomAppliquer à ce
classeur Créer, j'ai incorporé votre suggestion entre Sub et End Sub puis
j''ai remplacé, dans votre example, le "NomDuChampDePage" par le mien
(Manager) et la référence de la cellule [B1] par la mienne [A3].
J'obtiens donc :
""Sub Nom ()
""Private Sub Worksheet_Calculate()
"" ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Manager").
"" CurrentPage = "" & [A3]
""End Sub
""End Sub
Rien n'y fait et je tourne en rond depuis + d'1 heure. Je n'obtiens rien
automatiquement et si j'essaye d'exécuter la Macro "Nom", j'ai 1 message
d'erreur de compilation : " End Sub attendu" et la première ligne du script
"Sub Nom" apparait flèchée et surlignée en jaune. Malgré l'aide de MS, je ne
sais que faire !
Pourriez-vous expliquer SVP de façon suffisamment détaillée pour un
néophyte, comment mettre correcdtement cette macro sur la page code de la
feuille ?
Par la même occasion, quelle syntaxe adopter SVP pour asservir plusieurs TCD
(2,3,4, ...) se trouvant sur la même feuille de calcul au même champ de page
du TCD1 (lui-même sur la même feuille de calcul que les autresTCD) ?
J'allais oublier: mon OS est Windows 2000 Pro (ou XP Ed Fam au besoin) et je
suis sous Office 2000 Pro mis à jour régulièrement (dans les 2 cas !)
D'avance 1000 merci(s) et bon W-E
DDbonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelleBonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
bonjour DD,
tout d'abord vérifier que votre tcd ce nomme bien "Tableau croisé dynamique2" c'est à adapter.
pour l'explication:
c'est une macro événementiel (événement calculate de la feuille de calcul contenant le tcd)
c'est à dire que ce genre de macro s'exécute tout seul lorsqu'il se produit l'événement,
lorsque le tcd est mit à jour automatiquement l'action calculate se produit et il en suit l'exécution de la macro.
ce code doit être mit sur la page code de la feuille, si vous faite un click droit sur l'onglet de la feuille contenant le tcd,
vous sélectionner "Visualiser le code" automatiquement vous êtes diriger vers la page code de cette feuille.
donc pour résumer, si votre classeur contient 2 feuilles "Feuil1" et Feuil2"
dans visual basic(Atl+F11), à gauche il y a l'arborescence des classeurs ouvert,
sous le VBAProject(nomDeVotreClasseur) il y aura :
Feuil1(Feuil1)
Feuil2(Feuil2)
Module1
ThisWorkbook
vous pouvez aussi faire un double click sur Feuil1(Feuil1) pour afficher cette page à gauche.
cela revient au même que de faire un click droit sur l'onglet de la feuille contenant le tcd,
et sélectionner "Visualiser le code"
sur la barre de titre en haut de la fenêtre visual basic il y a le nom de la page de code actuellement afficher.(gauche)
par exemple : Microsoft Visual Basic - MonClasseur.xls - [module1(code)]
c'est probablement là que vous avez votre macro "Sub Nom ()"
si vous double click sur Feuil1(Feuil1) le titre de la barre changera pour :
Microsoft Visual Basic - MonClasseur.xls - [Feuil1(code)]
cela vous assure d'avoir atteint la bonne page de gauche. (bien entendu si le tcd est sur la Feuil1)
si le tcd est sur la Feuil1, la macro doit être mit sur la page code Feuil1(Feuil1)
si le tcd est sur la Feuil2, la macro doit être mit sur la page code Feuil2(Feuil2)
la macro à copier est la suivante (nom du tcd "Tableau croisé dynamique2" et nom du champ "NomDuChampDePage" sont à adapter)
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
attention au retour à la ligne intempestif,
si la commande entre le sub et le end sub apparaît en rouge remettre la commande en une seule ligne.
si vous désirer que la macro s'exécute sur l'action click d'un bouton au lieu de l'événement calculate
placer un bouton (de la barre d'outils control) sur la feuille
faire un click droit sur le bouton et sélectionner "Visualiser le code"
automatiquement il sera écrit sur la page code de visual basic :
Private Sub CommandButton1_Click()
End Sub
placer la commande entre le sub et le end sub de cette macro :
Private Sub CommandButton1_Click()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
voilà c'est presque tout, mais j'aurais besoin de savoir si les tcd sont sur la même feuille
pour répondre à l'autre partie de la question.
j'espère avoir été suffisamment détaillée, si ce n'est pas le cas, ne vous gêné pas pour reposer des questions.
bon travail et bon courage,
a+
isabelleBonjour Isabelle,
J'espère que vous serez toujours disponible sur ce sujet qui me passionne.
Votre réponse pourrait m'être très utile (4 TCD "commandés par le même tri
de page sur champ dynamique).
Je connais bien (sans être expert pour autant) les TCD, mais je ne connais
pas grand'chose à VBA.
Après avoir fait depuis ma feuille Excel : OutilsMacroNomAppliquer à ce
classeur Créer, j'ai incorporé votre suggestion entre Sub et End Sub puis
j''ai remplacé, dans votre example, le "NomDuChampDePage" par le mien
(Manager) et la référence de la cellule [B1] par la mienne [A3].
J'obtiens donc :
""Sub Nom ()
""Private Sub Worksheet_Calculate()
"" ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Manager").
"" CurrentPage = "" & [A3]
""End Sub
""End Sub
Rien n'y fait et je tourne en rond depuis + d'1 heure. Je n'obtiens rien
automatiquement et si j'essaye d'exécuter la Macro "Nom", j'ai 1 message
d'erreur de compilation : " End Sub attendu" et la première ligne du script
"Sub Nom" apparait flèchée et surlignée en jaune. Malgré l'aide de MS, je ne
sais que faire !
Pourriez-vous expliquer SVP de façon suffisamment détaillée pour un
néophyte, comment mettre correcdtement cette macro sur la page code de la
feuille ?
Par la même occasion, quelle syntaxe adopter SVP pour asservir plusieurs TCD
(2,3,4, ...) se trouvant sur la même feuille de calcul au même champ de page
du TCD1 (lui-même sur la même feuille de calcul que les autresTCD) ?
J'allais oublier: mon OS est Windows 2000 Pro (ou XP Ed Fam au besoin) et je
suis sous Office 2000 Pro mis à jour régulièrement (dans les 2 cas !)
D'avance 1000 merci(s) et bon W-E
DDbonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelleBonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
bonjour DD,
tout d'abord vérifier que votre tcd ce nomme bien "Tableau croisé dynamique2" c'est à adapter.
pour l'explication:
c'est une macro événementiel (événement calculate de la feuille de calcul contenant le tcd)
c'est à dire que ce genre de macro s'exécute tout seul lorsqu'il se produit l'événement,
lorsque le tcd est mit à jour automatiquement l'action calculate se produit et il en suit l'exécution de la macro.
ce code doit être mit sur la page code de la feuille, si vous faite un click droit sur l'onglet de la feuille contenant le tcd,
vous sélectionner "Visualiser le code" automatiquement vous êtes diriger vers la page code de cette feuille.
donc pour résumer, si votre classeur contient 2 feuilles "Feuil1" et Feuil2"
dans visual basic(Atl+F11), à gauche il y a l'arborescence des classeurs ouvert,
sous le VBAProject(nomDeVotreClasseur) il y aura :
Feuil1(Feuil1)
Feuil2(Feuil2)
Module1
ThisWorkbook
vous pouvez aussi faire un double click sur Feuil1(Feuil1) pour afficher cette page à gauche.
cela revient au même que de faire un click droit sur l'onglet de la feuille contenant le tcd,
et sélectionner "Visualiser le code"
sur la barre de titre en haut de la fenêtre visual basic il y a le nom de la page de code actuellement afficher.(gauche)
par exemple : Microsoft Visual Basic - MonClasseur.xls - [module1(code)]
c'est probablement là que vous avez votre macro "Sub Nom ()"
si vous double click sur Feuil1(Feuil1) le titre de la barre changera pour :
Microsoft Visual Basic - MonClasseur.xls - [Feuil1(code)]
cela vous assure d'avoir atteint la bonne page de gauche. (bien entendu si le tcd est sur la Feuil1)
si le tcd est sur la Feuil1, la macro doit être mit sur la page code Feuil1(Feuil1)
si le tcd est sur la Feuil2, la macro doit être mit sur la page code Feuil2(Feuil2)
la macro à copier est la suivante (nom du tcd "Tableau croisé dynamique2" et nom du champ "NomDuChampDePage" sont à adapter)
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
attention au retour à la ligne intempestif,
si la commande entre le sub et le end sub apparaît en rouge remettre la commande en une seule ligne.
si vous désirer que la macro s'exécute sur l'action click d'un bouton au lieu de l'événement calculate
placer un bouton (de la barre d'outils control) sur la feuille
faire un click droit sur le bouton et sélectionner "Visualiser le code"
automatiquement il sera écrit sur la page code de visual basic :
Private Sub CommandButton1_Click()
End Sub
placer la commande entre le sub et le end sub de cette macro :
Private Sub CommandButton1_Click()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
voilà c'est presque tout, mais j'aurais besoin de savoir si les tcd sont sur la même feuille
pour répondre à l'autre partie de la question.
j'espère avoir été suffisamment détaillée, si ce n'est pas le cas, ne vous gêné pas pour reposer des questions.
bon travail et bon courage,
a+
isabelle
Bonjour Isabelle,
J'espère que vous serez toujours disponible sur ce sujet qui me passionne.
Votre réponse pourrait m'être très utile (4 TCD "commandés par le même tri
de page sur champ dynamique).
Je connais bien (sans être expert pour autant) les TCD, mais je ne connais
pas grand'chose à VBA.
Après avoir fait depuis ma feuille Excel : OutilsMacroNomAppliquer à ce
classeur Créer, j'ai incorporé votre suggestion entre Sub et End Sub puis
j''ai remplacé, dans votre example, le "NomDuChampDePage" par le mien
(Manager) et la référence de la cellule [B1] par la mienne [A3].
J'obtiens donc :
""Sub Nom ()
""Private Sub Worksheet_Calculate()
"" ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Manager").
"" CurrentPage = "" & [A3]
""End Sub
""End Sub
Rien n'y fait et je tourne en rond depuis + d'1 heure. Je n'obtiens rien
automatiquement et si j'essaye d'exécuter la Macro "Nom", j'ai 1 message
d'erreur de compilation : " End Sub attendu" et la première ligne du script
"Sub Nom" apparait flèchée et surlignée en jaune. Malgré l'aide de MS, je ne
sais que faire !
Pourriez-vous expliquer SVP de façon suffisamment détaillée pour un
néophyte, comment mettre correcdtement cette macro sur la page code de la
feuille ?
Par la même occasion, quelle syntaxe adopter SVP pour asservir plusieurs TCD
(2,3,4, ...) se trouvant sur la même feuille de calcul au même champ de page
du TCD1 (lui-même sur la même feuille de calcul que les autresTCD) ?
J'allais oublier: mon OS est Windows 2000 Pro (ou XP Ed Fam au besoin) et je
suis sous Office 2000 Pro mis à jour régulièrement (dans les 2 cas !)
D'avance 1000 merci(s) et bon W-E
DD
bonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelle
Bonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
bonjour DD,
tout d'abord vérifier que votre tcd ce nomme bien "Tableau croisé dynamique2" c'est à adapter.
pour l'explication:
c'est une macro événementiel (événement calculate de la feuille de calcul contenant le tcd)
c'est à dire que ce genre de macro s'exécute tout seul lorsqu'il se produit l'événement,
lorsque le tcd est mit à jour automatiquement l'action calculate se produit et il en suit l'exécution de la macro.
ce code doit être mit sur la page code de la feuille, si vous faite un click droit sur l'onglet de la feuille contenant le tcd,
vous sélectionner "Visualiser le code" automatiquement vous êtes diriger vers la page code de cette feuille.
donc pour résumer, si votre classeur contient 2 feuilles "Feuil1" et Feuil2"
dans visual basic(Atl+F11), à gauche il y a l'arborescence des classeurs ouvert,
sous le VBAProject(nomDeVotreClasseur) il y aura :
Feuil1(Feuil1)
Feuil2(Feuil2)
Module1
ThisWorkbook
vous pouvez aussi faire un double click sur Feuil1(Feuil1) pour afficher cette page à gauche.
cela revient au même que de faire un click droit sur l'onglet de la feuille contenant le tcd,
et sélectionner "Visualiser le code"
sur la barre de titre en haut de la fenêtre visual basic il y a le nom de la page de code actuellement afficher.(gauche)
par exemple : Microsoft Visual Basic - MonClasseur.xls - [module1(code)]
c'est probablement là que vous avez votre macro "Sub Nom ()"
si vous double click sur Feuil1(Feuil1) le titre de la barre changera pour :
Microsoft Visual Basic - MonClasseur.xls - [Feuil1(code)]
cela vous assure d'avoir atteint la bonne page de gauche. (bien entendu si le tcd est sur la Feuil1)
si le tcd est sur la Feuil1, la macro doit être mit sur la page code Feuil1(Feuil1)
si le tcd est sur la Feuil2, la macro doit être mit sur la page code Feuil2(Feuil2)
la macro à copier est la suivante (nom du tcd "Tableau croisé dynamique2" et nom du champ "NomDuChampDePage" sont à adapter)
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
attention au retour à la ligne intempestif,
si la commande entre le sub et le end sub apparaît en rouge remettre la commande en une seule ligne.
si vous désirer que la macro s'exécute sur l'action click d'un bouton au lieu de l'événement calculate
placer un bouton (de la barre d'outils control) sur la feuille
faire un click droit sur le bouton et sélectionner "Visualiser le code"
automatiquement il sera écrit sur la page code de visual basic :
Private Sub CommandButton1_Click()
End Sub
placer la commande entre le sub et le end sub de cette macro :
Private Sub CommandButton1_Click()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
voilà c'est presque tout, mais j'aurais besoin de savoir si les tcd sont sur la même feuille
pour répondre à l'autre partie de la question.
j'espère avoir été suffisamment détaillée, si ce n'est pas le cas, ne vous gêné pas pour reposer des questions.
bon travail et bon courage,
a+
isabelleBonjour Isabelle,
J'espère que vous serez toujours disponible sur ce sujet qui me passionne.
Votre réponse pourrait m'être très utile (4 TCD "commandés par le même tri
de page sur champ dynamique).
Je connais bien (sans être expert pour autant) les TCD, mais je ne connais
pas grand'chose à VBA.
Après avoir fait depuis ma feuille Excel : OutilsMacroNomAppliquer à ce
classeur Créer, j'ai incorporé votre suggestion entre Sub et End Sub puis
j''ai remplacé, dans votre example, le "NomDuChampDePage" par le mien
(Manager) et la référence de la cellule [B1] par la mienne [A3].
J'obtiens donc :
""Sub Nom ()
""Private Sub Worksheet_Calculate()
"" ActiveSheet.PivotTables("Tableau croisé
dynamique2").PivotFields("Manager").
"" CurrentPage = "" & [A3]
""End Sub
""End Sub
Rien n'y fait et je tourne en rond depuis + d'1 heure. Je n'obtiens rien
automatiquement et si j'essaye d'exécuter la Macro "Nom", j'ai 1 message
d'erreur de compilation : " End Sub attendu" et la première ligne du script
"Sub Nom" apparait flèchée et surlignée en jaune. Malgré l'aide de MS, je ne
sais que faire !
Pourriez-vous expliquer SVP de façon suffisamment détaillée pour un
néophyte, comment mettre correcdtement cette macro sur la page code de la
feuille ?
Par la même occasion, quelle syntaxe adopter SVP pour asservir plusieurs TCD
(2,3,4, ...) se trouvant sur la même feuille de calcul au même champ de page
du TCD1 (lui-même sur la même feuille de calcul que les autresTCD) ?
J'allais oublier: mon OS est Windows 2000 Pro (ou XP Ed Fam au besoin) et je
suis sous Office 2000 Pro mis à jour régulièrement (dans les 2 cas !)
D'avance 1000 merci(s) et bon W-E
DDbonjour Corinne,
supposons que le champ de page du tcd1 est en cellule B1,
tu pourrais mettre cette macro sur la page code de la feuille,
Private Sub Worksheet_Calculate()
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("NomDuChampDePage"). _
CurrentPage = "" & [B1]
End Sub
isabelleBonjour,
avant de poster ma question croyez-moi j'ai bien cherché dans les
anciens messages de ce NG, mais en vain.
Alors cette question me trotte depuis longtemps dans la tête:
j'ai 2 TCDs dans la même feuille séparée par une simple colonne.
Existe-t-il un moyen d'appliquer le même filtre de PAGE que pour le
TCD1 ??
Merci
Corinne
Merci Isabelle,
1°)Ah ça oui alors, ça marche vraiment beauuucouuuup mieux mieux. J'ai
supprimé la "macro ratée' et introduit le code comme indiqué : It work's very
well. Tellement que l'écran de mon vieux Dell s'est mis à trembler pendant
plusieurs secondes (véridique !) lors de l'essai
2°) Oui (je croyais l'avoir indiqué), tous mes TCD sont sur la même feuille
(je suis prudent par nature et ai déjà une certaine expérience avec .xls)
Si la suite de vos réponses est du même "tonneau", ça va être "du tonnerre"
Merci Isabelle,
1°)Ah ça oui alors, ça marche vraiment beauuucouuuup mieux mieux. J'ai
supprimé la "macro ratée' et introduit le code comme indiqué : It work's very
well. Tellement que l'écran de mon vieux Dell s'est mis à trembler pendant
plusieurs secondes (véridique !) lors de l'essai
2°) Oui (je croyais l'avoir indiqué), tous mes TCD sont sur la même feuille
(je suis prudent par nature et ai déjà une certaine expérience avec .xls)
Si la suite de vos réponses est du même "tonneau", ça va être "du tonnerre"
Merci Isabelle,
1°)Ah ça oui alors, ça marche vraiment beauuucouuuup mieux mieux. J'ai
supprimé la "macro ratée' et introduit le code comme indiqué : It work's very
well. Tellement que l'écran de mon vieux Dell s'est mis à trembler pendant
plusieurs secondes (véridique !) lors de l'essai
2°) Oui (je croyais l'avoir indiqué), tous mes TCD sont sur la même feuille
(je suis prudent par nature et ai déjà une certaine expérience avec .xls)
Si la suite de vos réponses est du même "tonneau", ça va être "du tonnerre"
bonjour DD,
pour tout les tcd sur une même feuille on peut utilisé une boucle,
par exemple à partir de l'action click sur un bouton :
Private Sub CommandButton1_Click()
For Each tcd In ActiveSheet.PivotTables
tcd.PivotFields("NomDuChampDePage").CurrentPage = "" & [B1]
Next
End Sub
isabelleMerci Isabelle,
1°)Ah ça oui alors, ça marche vraiment beauuucouuuup mieux mieux. J'ai
supprimé la "macro ratée' et introduit le code comme indiqué : It work's very
well. Tellement que l'écran de mon vieux Dell s'est mis à trembler pendant
plusieurs secondes (véridique !) lors de l'essai
2°) Oui (je croyais l'avoir indiqué), tous mes TCD sont sur la même feuille
(je suis prudent par nature et ai déjà une certaine expérience avec .xls)
Si la suite de vos réponses est du même "tonneau", ça va être "du tonnerre"
bonjour DD,
pour tout les tcd sur une même feuille on peut utilisé une boucle,
par exemple à partir de l'action click sur un bouton :
Private Sub CommandButton1_Click()
For Each tcd In ActiveSheet.PivotTables
tcd.PivotFields("NomDuChampDePage").CurrentPage = "" & [B1]
Next
End Sub
isabelle
Merci Isabelle,
1°)Ah ça oui alors, ça marche vraiment beauuucouuuup mieux mieux. J'ai
supprimé la "macro ratée' et introduit le code comme indiqué : It work's very
well. Tellement que l'écran de mon vieux Dell s'est mis à trembler pendant
plusieurs secondes (véridique !) lors de l'essai
2°) Oui (je croyais l'avoir indiqué), tous mes TCD sont sur la même feuille
(je suis prudent par nature et ai déjà une certaine expérience avec .xls)
Si la suite de vos réponses est du même "tonneau", ça va être "du tonnerre"
bonjour DD,
pour tout les tcd sur une même feuille on peut utilisé une boucle,
par exemple à partir de l'action click sur un bouton :
Private Sub CommandButton1_Click()
For Each tcd In ActiveSheet.PivotTables
tcd.PivotFields("NomDuChampDePage").CurrentPage = "" & [B1]
Next
End Sub
isabelleMerci Isabelle,
1°)Ah ça oui alors, ça marche vraiment beauuucouuuup mieux mieux. J'ai
supprimé la "macro ratée' et introduit le code comme indiqué : It work's very
well. Tellement que l'écran de mon vieux Dell s'est mis à trembler pendant
plusieurs secondes (véridique !) lors de l'essai
2°) Oui (je croyais l'avoir indiqué), tous mes TCD sont sur la même feuille
(je suis prudent par nature et ai déjà une certaine expérience avec .xls)
Si la suite de vos réponses est du même "tonneau", ça va être "du tonnerre"