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

2 réponses

1 2
Avatar
Daniel.C
Utilise l'enregistreur de macros et fais le changement à la main. Tu
obtiendras le code. Ou alors mets ton classeur (sans les données
confidentielles) sur www.cjoint.com et pposte l'adresse générée.
Daniel
"jiffey" a écrit dans le message de news:

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
























Avatar
Daniel.C
Bien sûr, tu as remplacé "TDC1" par le nom de ton tableau ?
Daniel
"jiffey" a écrit dans le message de news:

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