Tableau croisé par vba

Le
Jac
Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance la
macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la méthode
AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:="Repartition",
ColumnFields:="Mois"

qu'il butte et moi aussi. J'ai renommé le TCD, sans changement. J'ai
enlevé l'accent qui était sur "Répartition", sans changement. J'ai fermé
Excel et après ré-ouverture du fichier, ça ne fonctione pas mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de faire ce
qu'il a lui-même noté pendant l'enregistrement

Merci d'avance à qui saura m'indiquer comment sortir de cette embrouille.

Jac
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
cousinhub
Le #4515061
Bonsoir,
peux-tu joindre le code dans sa totalité?
ou joindre un fichier exemple sur cjoint?
Bon courage

Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance la
macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la méthode
AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:="Repartition",
ColumnFields:="Mois"

qu'il butte... et moi aussi. J'ai renommé le TCD, sans changement. J'ai
enlevé l'accent qui était sur "Répartition", sans changement. J'ai fermé
Excel et après ré-ouverture du fichier, ça ne fonctione pas mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de faire ce
qu'il a lui-même noté pendant l'enregistrement...

Merci d'avance à qui saura m'indiquer comment sortir de cette embrouille.

Jac






Jac
Le #4515021
Salut cousin,

voici le code :

Sub PIVOT_TABLE()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'CC 4'!C1:C4").CreatePivotTable TableDestination:="" _
, TableName:="LE_PIVOT", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:¬tiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
' c'est maintenant que ça
coince --------------------------------------------
ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:= _
"Repartition", ColumnFields:="Mois"
'
suite ----------------------------------------------------------------------
With ActiveSheet.PivotTables("LE_PIVOT").PivotFields("HT")
.Orientation = xlDataField
.Caption = "Total CA"
.Function = xlSum
.NumberFormat = "#.##0,00"
End With
ActiveWorkbook.ShowPivotTableFieldList = True
end sub

Merci de te pencher sur mon problème.


"cousinhub" eJplZ%23%
Bonsoir,
peux-tu joindre le code dans sa totalité?
ou joindre un fichier exemple sur cjoint?
Bon courage

Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance la
macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la
méthode AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:="Repartition",
ColumnFields:="Mois"

qu'il butte... et moi aussi. J'ai renommé le TCD, sans changement. J'ai
enlevé l'accent qui était sur "Répartition", sans changement. J'ai fermé
Excel et après ré-ouverture du fichier, ça ne fonctionne pas mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de faire
ce qu'il a lui-même noté pendant l'enregistrement...

Merci d'avance à qui saura m'indiquer comment sortir de cette embrouille.

Jac




cousinhub
Le #4515001
Re-,
la première chose qui m'interpelle, c'est que tu ne fais référence qu'à
une colonne (SourceData:= "'CC 4'!C1:C4")
tu ne peux donc forcément pas ajouter un champ de ligne, ou de colonne
si tu as préalablement ajouter un champ de ligne!
Regarde si c'est cela.

Salut cousin,

voici le code :

Sub PIVOT_TABLE()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'CC 4'!C1:C4").CreatePivotTable TableDestination:="" _
, TableName:="LE_PIVOT", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:¬tiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
' c'est maintenant que ça
coince --------------------------------------------
ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:= _
"Repartition", ColumnFields:="Mois"
'
suite ----------------------------------------------------------------------
With ActiveSheet.PivotTables("LE_PIVOT").PivotFields("HT")
.Orientation = xlDataField
.Caption = "Total CA"
.Function = xlSum
.NumberFormat = "#.##0,00"
End With
ActiveWorkbook.ShowPivotTableFieldList = True
end sub

Merci de te pencher sur mon problème.


"cousinhub" eJplZ%23%
Bonsoir,
peux-tu joindre le code dans sa totalité?
ou joindre un fichier exemple sur cjoint?
Bon courage

Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance la
macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la
méthode AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:="Repartition",
ColumnFields:="Mois"

qu'il butte... et moi aussi. J'ai renommé le TCD, sans changement. J'ai
enlevé l'accent qui était sur "Répartition", sans changement. J'ai fermé
Excel et après ré-ouverture du fichier, ça ne fonctionne pas mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de faire
ce qu'il a lui-même noté pendant l'enregistrement...

Merci d'avance à qui saura m'indiquer comment sortir de cette embrouille.

Jac








cousinhub
Le #4514991
Re-, annule mon post précédent...:-[
Ce sont des colonnes entières que tu utilises. Le problème semble
provenir de cela.
A la place de sélectionner les colonnes entières, sélectionne la zone
utilisée uniquement, ceci par l'insertion d'un nom dynamique.
Tu auras ainsi toutes tes données prises en compte, et de plus ton
classeur te dira merci pour son poids (40 fois plus lourd)
reviens si tu veux un exemple

Salut cousin,

voici le code :

Sub PIVOT_TABLE()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'CC 4'!C1:C4").CreatePivotTable TableDestination:="" _
, TableName:="LE_PIVOT", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:¬tiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
' c'est maintenant que ça
coince --------------------------------------------
ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:= _
"Repartition", ColumnFields:="Mois"
'
suite ----------------------------------------------------------------------
With ActiveSheet.PivotTables("LE_PIVOT").PivotFields("HT")
.Orientation = xlDataField
.Caption = "Total CA"
.Function = xlSum
.NumberFormat = "#.##0,00"
End With
ActiveWorkbook.ShowPivotTableFieldList = True
end sub

Merci de te pencher sur mon problème.


"cousinhub" eJplZ%23%
Bonsoir,
peux-tu joindre le code dans sa totalité?
ou joindre un fichier exemple sur cjoint?
Bon courage

Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance la
macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la
méthode AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:="Repartition",
ColumnFields:="Mois"

qu'il butte... et moi aussi. J'ai renommé le TCD, sans changement. J'ai
enlevé l'accent qui était sur "Répartition", sans changement. J'ai fermé
Excel et après ré-ouverture du fichier, ça ne fonctionne pas mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de faire
ce qu'il a lui-même noté pendant l'enregistrement...

Merci d'avance à qui saura m'indiquer comment sortir de cette embrouille.

Jac








Jac
Le #4514931
Absolument, je veux bien voir un exemple pour le nom dynamique.

"cousinhub" %239eYVp$
Re-, annule mon post précédent...:-[
Ce sont des colonnes entières que tu utilises. Le problème semble provenir
de cela.
A la place de sélectionner les colonnes entières, sélectionne la zone
utilisée uniquement, ceci par l'insertion d'un nom dynamique.
Tu auras ainsi toutes tes données prises en compte, et de plus ton
classeur te dira merci pour son poids (40 fois plus lourd)
reviens si tu veux un exemple

Salut cousin,

voici le code :

Sub PIVOT_TABLE()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'CC 4'!C1:C4").CreatePivotTable TableDestination:="" _
, TableName:="LE_PIVOT", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:¬tiveSheet.Cells(3,
1)
ActiveSheet.Cells(3, 1).Select
' c'est maintenant que ça
coince --------------------------------------------
ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:= _
"Repartition", ColumnFields:="Mois"
'
suite ----------------------------------------------------------------------
With ActiveSheet.PivotTables("LE_PIVOT").PivotFields("HT")
.Orientation = xlDataField
.Caption = "Total CA"
.Function = xlSum
.NumberFormat = "#.##0,00"
End With
ActiveWorkbook.ShowPivotTableFieldList = True
end sub

Merci de te pencher sur mon problème.


"cousinhub" eJplZ%23%
Bonsoir,
peux-tu joindre le code dans sa totalité?
ou joindre un fichier exemple sur cjoint?
Bon courage

Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance la
macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la
méthode AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:="Repartition",
ColumnFields:="Mois"

qu'il butte... et moi aussi. J'ai renommé le TCD, sans changement. J'ai
enlevé l'accent qui était sur "Répartition", sans changement. J'ai
fermé Excel et après ré-ouverture du fichier, ça ne fonctionne pas
mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de faire
ce qu'il a lui-même noté pendant l'enregistrement...

Merci d'avance à qui saura m'indiquer comment sortir de cette
embrouille.

Jac









cousinhub
Le #4514891
Bonsoir, dans le fichier ci-joint :
http://cjoint.com/?flvI7qScat


Regarde bien l'aide concernant la formule DECALER, et reviens si tu as
des problèmes
Bonne lecture

Absolument, je veux bien voir un exemple pour le nom dynamique.

"cousinhub" %239eYVp$
Re-, annule mon post précédent...:-[
Ce sont des colonnes entières que tu utilises. Le problème semble provenir
de cela.
A la place de sélectionner les colonnes entières, sélectionne la zone
utilisée uniquement, ceci par l'insertion d'un nom dynamique.
Tu auras ainsi toutes tes données prises en compte, et de plus ton
classeur te dira merci pour son poids (40 fois plus lourd)
reviens si tu veux un exemple

Salut cousin,

voici le code :

Sub PIVOT_TABLE()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'CC 4'!C1:C4").CreatePivotTable TableDestination:="" _
, TableName:="LE_PIVOT", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:¬tiveSheet.Cells(3,
1)
ActiveSheet.Cells(3, 1).Select
' c'est maintenant que ça
coince --------------------------------------------
ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:= _
"Repartition", ColumnFields:="Mois"
'
suite ----------------------------------------------------------------------
With ActiveSheet.PivotTables("LE_PIVOT").PivotFields("HT")
.Orientation = xlDataField
.Caption = "Total CA"
.Function = xlSum
.NumberFormat = "#.##0,00"
End With
ActiveWorkbook.ShowPivotTableFieldList = True
end sub

Merci de te pencher sur mon problème.


"cousinhub" eJplZ%23%
Bonsoir,
peux-tu joindre le code dans sa totalité?
ou joindre un fichier exemple sur cjoint?
Bon courage

Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance la
macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la
méthode AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:="Repartition",
ColumnFields:="Mois"

qu'il butte... et moi aussi. J'ai renommé le TCD, sans changement. J'ai
enlevé l'accent qui était sur "Répartition", sans changement. J'ai
fermé Excel et après ré-ouverture du fichier, ça ne fonctionne pas
mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de faire
ce qu'il a lui-même noté pendant l'enregistrement...

Merci d'avance à qui saura m'indiquer comment sortir de cette
embrouille.

Jac











Jac
Le #4513791
Bien vu... et merci pour le décalage...
La zone "Base" n'apparaît pas en cliquant dans la zone nom où apparait la
liste des zones nommées.
Est-ce normal ?

"cousinhub"
Bonsoir, dans le fichier ci-joint :
http://cjoint.com/?flvI7qScat


Regarde bien l'aide concernant la formule DECALER, et reviens si tu as des
problèmes
Bonne lecture

Absolument, je veux bien voir un exemple pour le nom dynamique.

"cousinhub" %239eYVp$
Re-, annule mon post précédent...:-[
Ce sont des colonnes entières que tu utilises. Le problème semble
provenir de cela.
A la place de sélectionner les colonnes entières, sélectionne la zone
utilisée uniquement, ceci par l'insertion d'un nom dynamique.
Tu auras ainsi toutes tes données prises en compte, et de plus ton
classeur te dira merci pour son poids (40 fois plus lourd)
reviens si tu veux un exemple

Salut cousin,

voici le code :

Sub PIVOT_TABLE()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=
_
"'CC 4'!C1:C4").CreatePivotTable TableDestination:="" _
, TableName:="LE_PIVOT", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTableWizard TableDestination:¬tiveSheet.Cells(3,
1)
ActiveSheet.Cells(3, 1).Select
' c'est maintenant que ça
coince --------------------------------------------
ActiveSheet.PivotTables("LE_PIVOT").AddFields RowFields:= _
"Repartition", ColumnFields:="Mois"
'
suite ----------------------------------------------------------------------
With ActiveSheet.PivotTables("LE_PIVOT").PivotFields("HT")
.Orientation = xlDataField
.Caption = "Total CA"
.Function = xlSum
.NumberFormat = "#.##0,00"
End With
ActiveWorkbook.ShowPivotTableFieldList = True
end sub

Merci de te pencher sur mon problème.


"cousinhub" eJplZ%23%
Bonsoir,
peux-tu joindre le code dans sa totalité?
ou joindre un fichier exemple sur cjoint?
Bon courage

Bonjour à tous,

je crée un tableau croisé en utilisant l'enregistreur de macro.
Puis je supprime la feuille qui contient le TCD et quand je relance
la macro, je reçois une erreur 1004 qui m'annonce joyeusement que "la
méthode AddFields de la classe PivotTable a échoué".
Et c'est sur la ligne

ActiveSheet.PivotTables("LE_PIVOT").AddFields
RowFields:="Repartition", ColumnFields:="Mois"

qu'il butte... et moi aussi. J'ai renommé le TCD, sans changement.
J'ai enlevé l'accent qui était sur "Répartition", sans changement.
J'ai fermé Excel et après ré-ouverture du fichier, ça ne fonctionne
pas mieux.

Je suis quand même assez étonné qu'il ne soit même pas capable de
faire ce qu'il a lui-même noté pendant l'enregistrement...

Merci d'avance à qui saura m'indiquer comment sortir de cette
embrouille.

Jac













Publicité
Poster une réponse
Anonyme