Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème de dénomination "Feuil1" ; "Feuil2" ; Etc. dans VB

12 réponses
Avatar
jiffey
Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite (relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter, puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey

10 réponses

1 2
Avatar
FFO
Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite (relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter, puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey


Avatar
jiffey
Salut FFO !!

Merci pour ta réponse.

En fait les nouvelles feuilles sont créées par un tableau croisé dynamique.

Ex : ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"hiérarchie!R1C1:R10000C43").CreatePivotTable TableDestination:="",
TableName _
:="Tableau croisé dynamique6", DefaultVersion:=xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:¬tiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique6").AddFields
RowFields:= _
Array("Livré ", "Données")


Ce code m'a été donné par l'enregistreur.

Les nouvelles feuilles qu'il crée porte par défaut les noms Feuil1, etc.



Je viens de me rendre compte que je pouvais en fait créer les feuilles par
avance et mettre le tableau croisé dynamique non pas dans une nouvelle
feuille mais dans une feuille existante. Le problème c'est que je dois
retaper tous ma macro. Et le problème, c'est que j'ai au total 9 tableaux
croisés dynamiques...


S'il y a une solution de "remise à zéro" des noms de feuilles créées, je
suis preneur...

Slts

JF


Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite (relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter, puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey




Avatar
jiffey
Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer le
tableau croisé dynamique dans une feuille déjà existante. Il plante et je ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite (relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter, puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey




Avatar
Daniel.C
Bonjour.
Si, à le fin de ta macro, tu te retrouves avec Feuil4, Feuil5 et Feuil6, En
tête de ta macro, mets :
On Error Reume Next
Sheets("Feuil4").name="Feuil1"
Sheets("Feuil5").name="Feuil2"
Sheets("Feuil6").name="Feuil3"
Quant à ta macro, tu ne peux pas la jouer deux fois sans changer le nom du
TCD. Sur quelle ligne plante-t-elle ?
Cordialement.
Daniel
"jiffey" a écrit dans le message de news:

Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer le
tableau croisé dynamique dans une feuille déjà existante. Il plante et je
ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire
appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles de
faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur
appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles
feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite
(relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la macro,
les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter,
puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les compteurs à
zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey






Avatar
FFO
Rebonjour à toi

L'idéal serai que tu nous transmettes ton fichier sur :

http://www.cijoint.fr/index.php

et de nous communiquer le lien afin que l'on puisse l'étudier



Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer le
tableau croisé dynamique dans une feuille déjà existante. Il plante et je ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite (relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter, puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey






Avatar
jiffey
Merci à vous,

Bon en fait je crois que le plus simple c'est de créer mon tableau croisé
ynamique sur une feuille nommée existante. Au moins, je n'aurai plus de
problème pour relancer la macro.

Par contre, impossible de créer le code qui convient, même en utilisant
l'enregistreur. Je ne comprends pas...

Ci-joint le fichier et la macro que j'ai faite : http://cjoint.com/?jmr2Tf28hJ

Qu'est-ce qui ne va pas ??

Merci d'avance !

Jiffey




Rebonjour à toi

L'idéal serai que tu nous transmettes ton fichier sur :

http://www.cijoint.fr/index.php

et de nous communiquer le lien afin que l'on puisse l'étudier



Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer le
tableau croisé dynamique dans une feuille déjà existante. Il plante et je ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite (relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter, puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey








Avatar
Daniel.C
essaie ce code :

Sheets("stats").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R348C8").CreatePivotTable TableDestination:= _
"onglet1!R1C1", TableName:= _
"TCD1", DefaultVersion:=xlPivotTableVersion10
Sheets("onglet1").PivotTables("TCD1").AddFields RowFields:= _
"Livré", ColumnFields:="Rubrique"
Sheets("onglet1").PivotTables("TCD1").PivotFields("Net"). _
Orientation = xlDataField
Application.CommandBars("PivotTable").Visible = False
ActiveWorkbook.ShowPivotTableFieldList = False

Daniel
"jiffey" a écrit dans le message de news:

Merci à vous,

Bon en fait je crois que le plus simple c'est de créer mon tableau croisé
ynamique sur une feuille nommée existante. Au moins, je n'aurai plus de
problème pour relancer la macro.

Par contre, impossible de créer le code qui convient, même en utilisant
l'enregistreur. Je ne comprends pas...

Ci-joint le fichier et la macro que j'ai faite :
http://cjoint.com/?jmr2Tf28hJ

Qu'est-ce qui ne va pas ??

Merci d'avance !

Jiffey




Rebonjour à toi

L'idéal serai que tu nous transmettes ton fichier sur :

http://www.cijoint.fr/index.php

et de nous communiquer le lien afin que l'on puisse l'étudier



Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer le
tableau croisé dynamique dans une feuille déjà existante. Il plante et
je ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=
_
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire
appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont
différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles
de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable
F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur
appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles
feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite
(relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la
macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter,
puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les
compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey










Avatar
jiffey
Merci beaucoup Daniel !


Par conter, y a-t-il un moyen d'avoir la somme et non le nombre comme
paramètre du champ ?


Merci de votre réponse !

Cdt

Jiffey


essaie ce code :

Sheets("stats").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R348C8").CreatePivotTable TableDestination:= _
"onglet1!R1C1", TableName:= _
"TCD1", DefaultVersion:=xlPivotTableVersion10
Sheets("onglet1").PivotTables("TCD1").AddFields RowFields:= _
"Livré", ColumnFields:="Rubrique"
Sheets("onglet1").PivotTables("TCD1").PivotFields("Net"). _
Orientation = xlDataField
Application.CommandBars("PivotTable").Visible = False
ActiveWorkbook.ShowPivotTableFieldList = False

Daniel
"jiffey" a écrit dans le message de news:

Merci à vous,

Bon en fait je crois que le plus simple c'est de créer mon tableau croisé
ynamique sur une feuille nommée existante. Au moins, je n'aurai plus de
problème pour relancer la macro.

Par contre, impossible de créer le code qui convient, même en utilisant
l'enregistreur. Je ne comprends pas...

Ci-joint le fichier et la macro que j'ai faite :
http://cjoint.com/?jmr2Tf28hJ

Qu'est-ce qui ne va pas ??

Merci d'avance !

Jiffey




Rebonjour à toi

L'idéal serai que tu nous transmettes ton fichier sur :

http://www.cijoint.fr/index.php

et de nous communiquer le lien afin que l'on puisse l'étudier



Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer le
tableau croisé dynamique dans une feuille déjà existante. Il plante et
je ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=
_
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer faire
appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont
différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des feuilles
de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la variable
F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur
appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3 nouvelles
feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de suite
(relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la
macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer, quitter,
puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les
compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey















Avatar
Daniel.C
Bonjour.
Si c'est le champ "Net qu'il faut additionner :
ActiveSheet.PivotTables("TCD1").PivotFields( _
"Somme de nombres").Function = xlSum
"nombres" étant le nom du champ à additionner.
Cordialement.
Daniel
"jiffey" a écrit dans le message de news:

Merci beaucoup Daniel !


Par conter, y a-t-il un moyen d'avoir la somme et non le nombre comme
paramètre du champ ?


Merci de votre réponse !

Cdt

Jiffey


essaie ce code :

Sheets("stats").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R348C8").CreatePivotTable TableDestination:= _
"onglet1!R1C1", TableName:= _
"TCD1", DefaultVersion:=xlPivotTableVersion10
Sheets("onglet1").PivotTables("TCD1").AddFields RowFields:= _
"Livré", ColumnFields:="Rubrique"
Sheets("onglet1").PivotTables("TCD1").PivotFields("Net"). _
Orientation = xlDataField
Application.CommandBars("PivotTable").Visible = False
ActiveWorkbook.ShowPivotTableFieldList = False

Daniel
"jiffey" a écrit dans le message de
news:

Merci à vous,

Bon en fait je crois que le plus simple c'est de créer mon tableau
croisé
ynamique sur une feuille nommée existante. Au moins, je n'aurai plus de
problème pour relancer la macro.

Par contre, impossible de créer le code qui convient, même en utilisant
l'enregistreur. Je ne comprends pas...

Ci-joint le fichier et la macro que j'ai faite :
http://cjoint.com/?jmr2Tf28hJ

Qu'est-ce qui ne va pas ??

Merci d'avance !

Jiffey




Rebonjour à toi

L'idéal serai que tu nous transmettes ton fichier sur :

http://www.cijoint.fr/index.php

et de nous communiquer le lien afin que l'on puisse l'étudier



Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer
le
tableau croisé dynamique dans une feuille déjà existante. Il plante
et
je ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData: >> >> > _
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer
faire
appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont
différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des
feuilles
de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la
variable
F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur
appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3
nouvelles
feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de
suite
(relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la
macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer,
quitter,
puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les
compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey

















Avatar
jiffey
Merci encore Daniel,

Par contre, j'ai essayé ta formule avec "Net" à la place de "Nombres" soit :

ActiveSheet.PivotTables("TDC1").PivotFields("Somme de Net").Function = xlSum

Et ca ne marche pas.

j'ai essayé avec "Somme de rubrique" ; "Nombre de Net" ; "somme de nombre de
net". Rien...

Saurais-tu pourquoi cela ne fonctionne pas ?

Merci d'avance !

Slts

Jiffey


Bonjour.
Si c'est le champ "Net qu'il faut additionner :
ActiveSheet.PivotTables("TCD1").PivotFields( _
"Somme de nombres").Function = xlSum
"nombres" étant le nom du champ à additionner.
Cordialement.
Daniel
"jiffey" a écrit dans le message de news:

Merci beaucoup Daniel !


Par conter, y a-t-il un moyen d'avoir la somme et non le nombre comme
paramètre du champ ?


Merci de votre réponse !

Cdt

Jiffey


essaie ce code :

Sheets("stats").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"stats!R1C1:R348C8").CreatePivotTable TableDestination:= _
"onglet1!R1C1", TableName:= _
"TCD1", DefaultVersion:=xlPivotTableVersion10
Sheets("onglet1").PivotTables("TCD1").AddFields RowFields:= _
"Livré", ColumnFields:="Rubrique"
Sheets("onglet1").PivotTables("TCD1").PivotFields("Net"). _
Orientation = xlDataField
Application.CommandBars("PivotTable").Visible = False
ActiveWorkbook.ShowPivotTableFieldList = False

Daniel
"jiffey" a écrit dans le message de
news:

Merci à vous,

Bon en fait je crois que le plus simple c'est de créer mon tableau
croisé
ynamique sur une feuille nommée existante. Au moins, je n'aurai plus de
problème pour relancer la macro.

Par contre, impossible de créer le code qui convient, même en utilisant
l'enregistreur. Je ne comprends pas...

Ci-joint le fichier et la macro que j'ai faite :
http://cjoint.com/?jmr2Tf28hJ

Qu'est-ce qui ne va pas ??

Merci d'avance !

Jiffey




Rebonjour à toi

L'idéal serai que tu nous transmettes ton fichier sur :

http://www.cijoint.fr/index.php

et de nous communiquer le lien afin que l'on puisse l'étudier



Snif... Pas de solution ?

En plus je n'arrive pas à faire marcher ma macro si je veux placer
le
tableau croisé dynamique dans une feuille déjà existante. Il plante
et
je ne
comprends pas pourquoi...

Si qqn sait pourquoi...

Cdt

JF


macro :



Range("C6").Select
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase,
SourceData: > >> >> > _
"stats!R1C1:R1808C16").CreatePivotTable TableDestination:= _
"'[Ultimatemacro - vision hiérarchie -
v1.0.xls]onglet1'!R1:R65536" _
, TableName:="Tableau croisé dynamique1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddFields
RowFields:= _
"Livré", ColumnFields:="Rubrique"
ActiveSheet.PivotTables("Tableau croisé
dynamique1").PivotFields("Net"). _
Orientation = xlDataField







Salut à toi

Il est domage que je n'ai pas ton code car il doit pour buguer
faire
appel
aux différents noms des feuilles crées comme par exemple :

Sheets("Feuil1").Select
Sheets("Feuil2").Select
Sheets("Feuil3").Select

Qui ne peux s'exécuter si les noms des feuilles ajoutées sont
différents
(Feuil4, Feuil5, Feuil6)

Une solution toute simple consiste lors de la création des
feuilles
de faire
appel à des variables qui porteront leur nom ainsi :

F1=Sheets.Add.Name

La première feuille est créée dont le nom est porté par la
variable
F1

Idem pour les 2 autres feuilles :

F2=Sheets.Add.Name
F2=Sheets.Add.Name

Et d'adapter les instructions qui utilisent ces noms ainsi :

Sheets(F1).Select
Sheets(F2).Select
Sheets(F3).Select

Tu peux donc créer toutes tes feuilles sans te soucier de leur
appellation
Celles-ci suivront automatiquement dans le reste de ta macro

Celà devrait faire


Bonjour,

J'ai une macro qui, au cours de son application, crée 3
nouvelles
feuilles
dénommées par défaut Feuil1, Feuil2, Feuil3

Cette macro a pour vocation à être relancée plusieurs fois de
suite
(relance
forcément manuelle).

Le souci justement, c'est que lorsque je souhaite relancer la
macro, les
nouvelles feuilles créer vont être Feuil4, Feuil5, Feuil6.

Et là les feuilles ne sont pas reconnues, d'où bug.

La seule solution que j'ai trouvée c'est de l'enregistrer,
quitter,
puis
réouvrir le fichier excel pour relancer la macro.

N'y aurait-il pas une autre solution afin de "remettre les
compteurs à zéro"
et pouvoir ainsi relancer la macro sans quitter auparavant ?

J'espère avoir été clair...

Merci beaucoup d'avance à vous tous !

Cdt

Jiffey






















1 2