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

tableau croisé avec collone dynamique

5 réponses
Avatar
miofan
Bonjour,

apres plusieurs jour de recherche je vous pose mon probleme,

je souhaite mettre à jour un tcd apres avoir ajouté des lignes et des collones.
je recherche avec comme base ceci:

Range("a1" ).CurrentRegion.Select

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
Sheets("Feuil1" ).Range("a1" ).CurrentRegion).PivotTables("Tableau croisé dynamique3" ).PivotCache.Refresh , _
DefaultVersion:=xlPivotTableVersion10

mais pas de resultat jusqu'à present,

pouvez vous m'aider ,

Merci d'avance

5 réponses

Avatar
michdenis
Bonjour,

Voici un exemple de code :

Si tu utilises ce type de code :
Adr = .Name & "!" & .Range("A1").CurrentRegion.Address
La feuille ne doit pas être protégée

'---------------------------------------------
Sub CreerTCD()
'Déclaration des variables
Dim Adr As String, Dest As String
Dim Pc As PivotCache
Dim Pt As PivotTable

'Si le TDC existe déjà il faut le supprimer
'avant de relancer la procédure sinon une
'erreur est générée c'est ce pourquoi j'ajoute
'la ligne de code suivante :
'On Error Resume Next
'Feuil1.PivotTables("Denis").TableRange2.Clear

'On Error Resume Next
With ActiveWorkbook
'Avec la feuille source des données
'(adapter le nom de la feuille + plage de cellules)
With .Worksheets("feuil1")
'Définir la plage de data source
Adr = .Name & "!" & .Range("A1").CurrentRegion.Address
End With
'Avec la feuille où le TDC sera crée :
'adapter le nom de la feuille et la plage de cellule
With .Worksheets("Feuil2")
'Effacer le tdc si il existe
.PivotTables("Denis").TableRange2.Clear
'Définir la cellule où sera créé le TDC
Dest = .Name & "!" & .Range("A4").Address
End With
'Création du PivotCache
Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)
'création du PivotTable
Set Pt = Pc.CreatePivotTable(TableDestination:=Range(Dest), _
TableName:="Denis", DefaultVersion:=xlPivotTableVersion10)
End With

With Pt
'Ajout d'un champ en ligne
.AddFields RowFields:="Étudiant"
'Ajout d'un champ "Data" dans le TDC
.PivotFields("Note").Orientation = xlDataField
End With
End Sub
'---------------------------------------------


MichD
--------------------------------------------
"miofan" a écrit dans le message de groupe de discussion :

Bonjour,

apres plusieurs jour de recherche je vous pose mon probleme,

je souhaite mettre à jour un tcd apres avoir ajouté des lignes et des collones.

je recherche avec comme base ceci:

Range("a1" ).CurrentRegion.Select

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
Sheets("Feuil1" ).Range("a1" ).CurrentRegion).PivotTables("Tableau croisé
dynamique3" ).PivotCache.Refresh , _
DefaultVersion:=xlPivotTableVersion10

mais pas de resultat jusqu'à present,

pouvez vous m'aider ,

Merci d'avance
Avatar
miofan
michdenis a écrit le 14/12/2010 à 13h49 :
Bonjour,

Voici un exemple de code :

Si tu utilises ce type de code :
Adr = .Name & "!" &
.Range("A1").CurrentRegion.Address
La feuille ne doit pas être protégée

'---------------------------------------------
Sub CreerTCD()
'Déclaration des variables
Dim Adr As String, Dest As String
Dim Pc As PivotCache
Dim Pt As PivotTable

'Si le TDC existe déjà il faut le supprimer
'avant de relancer la procédure sinon une
'erreur est générée c'est ce pourquoi j'ajoute
'la ligne de code suivante :
'On Error Resume Next
'Feuil1.PivotTables("Denis").TableRange2.Clear

'On Error Resume Next
With ActiveWorkbook
'Avec la feuille source des données
'(adapter le nom de la feuille + plage de cellules)
With .Worksheets("feuil1")
'Définir la plage de data source
Adr = .Name & "!" &
.Range("A1").CurrentRegion.Address
End With
'Avec la feuille où le TDC sera crée :
'adapter le nom de la feuille et la plage de cellule
With .Worksheets("Feuil2")
'Effacer le tdc si il existe
.PivotTables("Denis").TableRange2.Clear
'Définir la cellule où sera créé le TDC
Dest = .Name & "!" & .Range("A4").Address
End With
'Création du PivotCache
Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)
'création du PivotTable
Set Pt = Pc.CreatePivotTable(TableDestination:=Range(Dest), _
TableName:="Denis", DefaultVersion:=xlPivotTableVersion10)
End With

With Pt
'Ajout d'un champ en ligne
.AddFields RowFields:="Étudiant"
'Ajout d'un champ "Data" dans le TDC
.PivotFields("Note").Orientation = xlDataField
End With
End Sub
'---------------------------------------------


MichD
--------------------------------------------
"miofan" a écrit dans le message de groupe de discussion :


Bonjour,

apres plusieurs jour de recherche je vous pose mon probleme,

je souhaite mettre à jour un tcd apres avoir ajouté des lignes et
des collones.

je recherche avec comme base ceci:

Range("a1" ).CurrentRegion.Select

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
Sheets("Feuil1" ).Range("a1"
).CurrentRegion).PivotTables("Tableau croisé
dynamique3" ).PivotCache.Refresh , _
DefaultVersion:=xlPivotTableVersion10

mais pas de resultat jusqu'à present,

pouvez vous m'aider ,

Merci d'avance


Merci pour cette réponse,

j'ai copié le code mais j'ai une erreur dans la ligne:

Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)

je pense que le point après Set Pc = est de trop ou il manque quelque chose .

peux tu confirmer ?

Merci
Avatar
michdenis
Un fichier exemple : http://cjoint.com/?0moqxpfdNH


MichD
--------------------------------------------
"miofan" a écrit dans le message de groupe de discussion :

michdenis a écrit le 14/12/2010 à 13h49 :
Bonjour,

Voici un exemple de code :

Si tu utilises ce type de code :
Adr = .Name & "!" &
.Range("A1").CurrentRegion.Address
La feuille ne doit pas être protégée

'---------------------------------------------
Sub CreerTCD()
'Déclaration des variables
Dim Adr As String, Dest As String
Dim Pc As PivotCache
Dim Pt As PivotTable

'Si le TDC existe déjà il faut le supprimer
'avant de relancer la procédure sinon une
'erreur est générée c'est ce pourquoi j'ajoute
'la ligne de code suivante :
'On Error Resume Next
'Feuil1.PivotTables("Denis").TableRange2.Clear

'On Error Resume Next
With ActiveWorkbook
'Avec la feuille source des données
'(adapter le nom de la feuille + plage de cellules)
With .Worksheets("feuil1")
'Définir la plage de data source
Adr = .Name & "!" &
.Range("A1").CurrentRegion.Address
End With
'Avec la feuille où le TDC sera crée :
'adapter le nom de la feuille et la plage de cellule
With .Worksheets("Feuil2")
'Effacer le tdc si il existe
.PivotTables("Denis").TableRange2.Clear
'Définir la cellule où sera créé le TDC
Dest = .Name & "!" & .Range("A4").Address
End With
'Création du PivotCache
Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)
'création du PivotTable
Set Pt = Pc.CreatePivotTable(TableDestination:=Range(Dest), _
TableName:="Denis", DefaultVersion:=xlPivotTableVersion10)
End With

With Pt
'Ajout d'un champ en ligne
.AddFields RowFields:="Étudiant"
'Ajout d'un champ "Data" dans le TDC
.PivotFields("Note").Orientation = xlDataField
End With
End Sub
'---------------------------------------------


MichD
--------------------------------------------
"miofan" a écrit dans le message de groupe de discussion :


Bonjour,

apres plusieurs jour de recherche je vous pose mon probleme,

je souhaite mettre à jour un tcd apres avoir ajouté des lignes et
des collones.

je recherche avec comme base ceci:

Range("a1" ).CurrentRegion.Select

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
Sheets("Feuil1" ).Range("a1"
).CurrentRegion).PivotTables("Tableau croisé
dynamique3" ).PivotCache.Refresh , _
DefaultVersion:=xlPivotTableVersion10

mais pas de resultat jusqu'à present,

pouvez vous m'aider ,

Merci d'avance


Merci pour cette réponse,

j'ai copié le code mais j'ai une erreur dans la ligne:

Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)

je pense que le point après Set Pc = est de trop ou il manque quelque chose .

peux tu confirmer ?

Merci
Avatar
miofan
michdenis a écrit le 14/12/2010 à 16h58 :
Un fichier exemple : http://cjoint.com/?0moqxpfdNH


MichD
--------------------------------------------
"miofan" a écrit dans le message de groupe de discussion :


michdenis a écrit le 14/12/2010 à 13h49 :
Bonjour,

Voici un exemple de code :

Si tu utilises ce type de code :
Adr = .Name & "!" &
.Range("A1").CurrentRegion.Address
La feuille ne doit pas être protégée

'---------------------------------------------
Sub CreerTCD()
'Déclaration des variables
Dim Adr As String, Dest As String
Dim Pc As PivotCache
Dim Pt As PivotTable

'Si le TDC existe déjà il faut le supprimer
'avant de relancer la procédure sinon une
'erreur est générée c'est ce pourquoi j'ajoute
'la ligne de code suivante :
'On Error Resume Next
'Feuil1.PivotTables("Denis").TableRange2.Clear

'On Error Resume Next
With ActiveWorkbook
'Avec la feuille source des données
'(adapter le nom de la feuille + plage de cellules)
With .Worksheets("feuil1")
'Définir la plage de data source
Adr = .Name & "!" &
.Range("A1").CurrentRegion.Address
End With
'Avec la feuille où le TDC sera crée :
'adapter le nom de la feuille et la plage de cellule
With .Worksheets("Feuil2")
'Effacer le tdc si il existe
.PivotTables("Denis").TableRange2.Clear
'Définir la cellule où sera créé le TDC
Dest = .Name & "!" & .Range("A4").Address
End With
'Création du PivotCache
Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)
'création du PivotTable
Set Pt = Pc.CreatePivotTable(TableDestination:=Range(Dest), _
TableName:="Denis", DefaultVersion:=xlPivotTableVersion10)
End With

With Pt
'Ajout d'un champ en ligne
.AddFields RowFields:="Étudiant"
'Ajout d'un champ "Data" dans le TDC
.PivotFields("Note").Orientation = xlDataField
End With
End Sub
'---------------------------------------------


MichD
--------------------------------------------
"miofan" a écrit dans le message de groupe de discussion :


Bonjour,

apres plusieurs jour de recherche je vous pose mon probleme,

je souhaite mettre à jour un tcd apres avoir ajouté des lignes
et
des collones.

je recherche avec comme base ceci:

Range("a1" ).CurrentRegion.Select

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
Sheets("Feuil1" ).Range("a1"
).CurrentRegion).PivotTables("Tableau croisé
dynamique3" ).PivotCache.Refresh , _
DefaultVersion:=xlPivotTableVersion10

mais pas de resultat jusqu'à present,

pouvez vous m'aider ,

Merci d'avance



Merci pour cette réponse,

j'ai copié le code mais j'ai une erreur dans la ligne:

Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)

je pense que le point après Set Pc = est de trop ou il manque quelque
chose .

peux tu confirmer ?

Merci


merci cela fonctionne,

j'ai bricolé ceci que j'ai mis sur la feuille des données ce qui fonctionne bien aussi:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.ScreenUpdating = False
DC = ActiveSheet.UsedRange.Columns.Count
With ActiveWorkbook.Worksheets("feuil1")
zone = .Name & "!" & "C1" & ":" & "C" & DC
End With
Sheets("Feuil4").Select
ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
zone
ActiveWorkbook.ShowPivotTableFieldList = True
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
Sheets("Feuil1").Select
Application.ScreenUpdating = True
End Sub

merci encore et à bientot
Avatar
Gloops
miofan a écrit, le 14/12/2010 15:57 :
j'ai copié le code mais j'ai une erreur dans la ligne:

Set Pc = .PivotCaches.Add(SourceType:=xlDatabase, SourceData:­r)

je pense que le point après Set Pc = est de trop ou il manque quelq ue chose .

peux tu confirmer ?

Merci



Le point renvoie à la clause With sur une ligne au-dessus et End With
sur une ligne en dessous.