Re : Mise à jour TCD en vba
Bonjour DoubleZero
merci pour ta reponse c'est exactement ce que je voulais dans la forme
en parcourant le code j'ai compris ou tu voulais en venir mais je ne suis qu'un jeune padawan en vba et du coup le message d'erreur que ta creation me renvoie me laisse dubitatif
A savoir que je suis sur Excel 2002 (je viens de verifier je croyais 2003 😡)
Le message : Erreur de compilation (variable non definie)
Et dans le code il me surligne les zones suivantes, je ne sais pas quoi mettre à la place.
Si je supprime les zones j'ai la msgbox :choisissez un onglet valide
Merci pour ton aide
Sub TCD_du_jour_choisi()
Dim TCD As PivotTable
Dim jour As Variant
Application.ScreenUpdating = False
For Each TCD In ActiveSheet.PivotTables
TCD.TableRange2.Clear
Next
On Error GoTo fin
Set jour = Worksheets(Range("TCD!j1").Value)
jour.Activate
Range("a1").CurrentRegion.Name = "Plage"
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Plage", Version:=xlPivotTableVersion12).CreatePivotTable TableDestination _
:="TCD!R1C1", TableName:="Mon_TCD", DefaultVersion:= _
xlPivotTableVersion12 Sheets("TCD").Select
Range("A1").Select
ActiveSheet.PivotTables("Mon_TCD").AddDataField ActiveSheet. _
PivotTables("Mon_TCD").PivotFields("DONNEES1"), _
"Nombre de DONNEES1", xlSum
ActiveSheet.PivotTables("Mon_TCD").AddDataField ActiveSheet. _
PivotTables("Mon_TCD").PivotFields("DONNEES2"), _
"Nombre de DONNEES2", xlSum
ActiveSheet.PivotTables("Mon_TCD").AddDataField ActiveSheet. _
PivotTables("Mon_TCD").PivotFields("DONNEES3"), _
"Nombre de DONNEES3", xlSum
ActiveSheet.PivotTables("Mon_TCD").AddDataField ActiveSheet. _
PivotTables("Mon_TCD").PivotFields("DONNEES4"), _
"Nombre de DONNEES4", xlSum
ActiveSheet.PivotTables("Mon_TCD").AddDataField ActiveSheet. _
PivotTables("Mon_TCD").PivotFields("DONNEES5"), _
"Nombre de DONNEES5", xlSum
With ActiveSheet.PivotTables("Mon_TCD").PivotFields("NOM")
.Orientation = xlRowField
.Position = 1
End With
ActiveWorkbook.Names("Plage").Delete
Range("a3").CurrentRegion.Borders.Value = 1
Range("j1").Select
Exit Sub
fin:
MsgBox "Veuillez sélectionner un onglet valide !"
Application.ScreenUpdating = True
End Sub