Remplcer nom du classeur par une variable dans un TCD

aubelix

XLDnaute Impliqué
Bonsoir à tous les amis du Forum. :)


Je vous soumets le problème suivant car je n'arrive pas à trouver
la syntaxe . Quel code faut-il mettre pour remplacer le nom du fichier
par une variable qui reprenne le nom du classeur quelque soit son nom.
Ci-dessous le code en bleu le sujet de ma question.



Code:
[FONT=Century Gothic]Range("A1").Select[/FONT]
 
[FONT=Century Gothic]  Selection.CurrentRegion.Select[/FONT]
[FONT=Century Gothic]  ActiveWorkbook.Names.Add Name:="Base_Data", RefersToR1C1:=Selection[/FONT]
 
[FONT=Century Gothic]  ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _[/FONT]
[FONT=Century Gothic]                                 "Data!Base_Data").CreatePivotTable TableDestination:= _[/FONT]
[FONT=Century Gothic]                                 "[[COLOR=blue]NOMFICHIER.xls[/COLOR]]Data!R13C20", TableName:= _[/FONT]
[FONT=Century Gothic]                                 "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10[/FONT]
[FONT=Century Gothic]  ActiveSheet.PivotTables("Tableau croisé dynamique2").AddFields RowFields:= _[/FONT]
[FONT=Century Gothic]                                                                 "VENDEUR", ColumnFields:="AK"[/FONT]
[FONT=Century Gothic]  ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("AK"). _[/FONT]
[FONT=Century Gothic]          Orientation = xlDataField[/FONT]
[FONT=Century Gothic]  ActiveWorkbook.ShowPivotTableFieldList = True[/FONT]
[FONT=Century Gothic]  Application.CommandBars("PivotTable").Visible = False[/FONT]
[FONT=Century Gothic]  ActiveWorkbook.ShowPivotTableFieldList = False[/FONT]
 
[FONT=Century Gothic]Range("A1").Select[/FONT]


Par avance, Merci pour votre aide.
Cordialement.
 
Dernière édition:

kjin

XLDnaute Barbatruc
Re : Remplcer nom du classeur par une variable dans un TCD

Bonsoir,
S'il s'agit toujours du même sujet que celui auquel j'ai déjà répondu, dans l'exemple que je t'ai fourni, le TCD est alimenté par une plage dynamique, il suffit donc de faire référence à cette plage dans ta macro
A+
kjin
 

aubelix

XLDnaute Impliqué
Re : Remplcer nom du classeur par une variable dans un TCD

Bonjour kjin et tous les Amis du Forum. :)

Code:
S'il s'agit toujours du même sujet que celui auquel j'ai déjà répondu
dans l'exemple que je t'ai fourni, le TCD est alimenté par une plage
dynamique, il suffit donc de faire référence à cette plage dans ta macro

Oui c'est toujours en rapport avec le même sujet.
J'ai pesné que ce n'était pas la même question.

J'ai automatisé les résultats grâce aux réponses de tous les bénévoles
du Forum que je ne remercierai jamais assez...

J'ai tout essayé en modifiant la partie en bleue, mais je ne trouve pas
la syntaxe. Aussi j'ai fait de nouveau fait appel à votre aide et vos compétences.

Par avance Merci pour votre aide.
Cordialement.
 

kjin

XLDnaute Barbatruc
Re : Remplcer nom du classeur par une variable dans un TCD

Bonsoir,
Je ne comprends pas trop pourquoi tu as besoin du nom du fichier
Code:
Sub TCD()
Dim pvc As PivotCache, pvt As PivotTable
ActiveWorkbook.Names.Add Name:="Base_Data", RefersToR1C1:=Range("A1").CurrentRegion
Set pvc = ActiveWorkbook.PivotCaches.Add(xlDatabase, "Base_Data")
Set pvt = pvc.CreatePivotTable(TableDestination:=Range("U3"), TableName:="TCD")
With pvt
    .AddFields RowFields:="VENDEUR", ColumnFields:="AK"
    .PivotFields("AK").Orientation = xlDataField
End With
Application.CommandBars("PivotTable").Visible = False

End Sub
A+
kjin
 

Pièces jointes

  • aubelix2.zip
    19.6 KB · Affichages: 28

aubelix

XLDnaute Impliqué
Re : Remplcer nom du classeur par une variable dans un TCD

Bonjour Kjin et tous les Amis du Forum. :)

Merci pour ton aide et ta réponse.

Ta macro fonctione bien sur le fichier que tu joint.
Je l'ai adapté sur mon fichier, en modifiant la cellule de position du TCD
Range("U3") transformée en Range("T14"), je n'ai rien changé d'autre.

La macro sarrête sur cette ligne.

Set pvt = pvc.CreatePivotTable(TableDestination:=Range("T14"), TableName:="TCD")

Le message suivant s'affiche:
Erreur d'exécution 1004.
Cette commande requiert au moins 2 lignes de données sources...


Code:
           Dim pvc As PivotCache, pvt As PivotTable
    ActiveWorkbook.Names.Add Name:="Base_Data", RefersToR1C1:=Range("A1").CurrentRegion
    Set pvc = ActiveWorkbook.PivotCaches.Add(xlDatabase, "Base_Data")
    Set pvt = pvc.CreatePivotTable(TableDestination:=Range("[COLOR=darkred]T14[/COLOR]"), TableName:="TCD")
    With pvt
        .AddFields RowFields:="VENDEUR", ColumnFields:="AK"
        .PivotFields("AK").Orientation = xlDataField
    End With
    Application.CommandBars("PivotTable").Visible = False
        Range("A1").Select

Merci pour ton aide.
Cordialement.
 

Discussions similaires

Réponses
1
Affichages
617

Statistiques des forums

Discussions
314 634
Messages
2 111 434
Membres
111 135
dernier inscrit
jessica.goncalves6@gmail.