Salut,
Je vous explique mon problème, chaque semaine, je dois mettre à jour une trentaine de tableaux croisés dynamiques, la mise à jour consiste uniquement :
- à ajouter la semaine dans le champ valeurs (pour un type de TCD)
- à supprimer l'ancienne semaine puis à ajouter la nouvel (dans un autre type de TDC).
Je ne suis pas très fort en VBA, mais j'ai réussi à faire quelque chose mais pour une semaine donnée.
Comment faire pour qu'une boite de dialogue s'ouvre, j'indique le numéro de la semaine à mettre à jour, je valide et cela ajoute la semaine inscrite dans tous mes TCD.
Voici ma macro (déjà elle fonctionne )
Sub Test_MAJ_SEMAINE()
Dim Ind, Ind1, Inde As Integer
'Mettre à jour la semaine pour TCD évolution des sites L
For Ind = 1 To 11
Sheets("Alertes").PivotTables("Tableau croisé dynamiqueg" & Ind).AddDataField _
Sheets("Alertes").PivotTables("Tableau croisé dynamiqueg" & Ind).PivotFields("S25"), "Nombre de S25", _
xlCount
With Sheets("Alertes").PivotTables("Tableau croisé dynamiqueg" & Ind).PivotFields( _
"Nombre de S25")
.Caption = "S25 "
.Function = xlSum
End With
Next Ind
'Mettre à jour la semaine pour TCD à date des sites L
For Ind1 = 1 To 11
Sheets("Alertes").PivotTables("Tableau croisé dynamiques" & Ind1).PivotFields( _
"Somme de S24").Orientation = xlHidden
Sheets("Alertes").PivotTables("Tableau croisé dynamiques" & Ind1).AddDataField Sheets("Alertes"). _
PivotTables("Tableau croisé dynamiques" & Ind1).PivotFields("S25"), "Nombre de S25", _
xlCount
With Sheets("Alertes").PivotTables("Tableau croisé dynamiques" & Ind1).PivotFields( _
"Nombre de S25")
.Caption = "S25 "
.Function = xlSum
End With
Next Ind1
'Mettre à jour la semaine pour TCD des sites E
For Inde = 1 To 4
Sheets("Alertes Ext").PivotTables("Tableau croisé dynamiquee" & Inde).AddDataField _
Sheets("Alertes Ext").PivotTables("Tableau croisé dynamiquee" & Inde).PivotFields("S25"), "Nombre de S25", _
xlCount
With Sheets("Alertes Ext").PivotTables("Tableau croisé dynamiquee" & Inde).PivotFields( _
"Nombre de S25")
.Caption = "S25 "
.Function = xlSum
End With
Next Inde
End Sub
(pour info aussi, comment mettre la macro dans un champ spécial dans un message de forum)
Merci d'avance.
Je vous explique mon problème, chaque semaine, je dois mettre à jour une trentaine de tableaux croisés dynamiques, la mise à jour consiste uniquement :
- à ajouter la semaine dans le champ valeurs (pour un type de TCD)
- à supprimer l'ancienne semaine puis à ajouter la nouvel (dans un autre type de TDC).
Je ne suis pas très fort en VBA, mais j'ai réussi à faire quelque chose mais pour une semaine donnée.
Comment faire pour qu'une boite de dialogue s'ouvre, j'indique le numéro de la semaine à mettre à jour, je valide et cela ajoute la semaine inscrite dans tous mes TCD.
Voici ma macro (déjà elle fonctionne )
Sub Test_MAJ_SEMAINE()
Dim Ind, Ind1, Inde As Integer
'Mettre à jour la semaine pour TCD évolution des sites L
For Ind = 1 To 11
Sheets("Alertes").PivotTables("Tableau croisé dynamiqueg" & Ind).AddDataField _
Sheets("Alertes").PivotTables("Tableau croisé dynamiqueg" & Ind).PivotFields("S25"), "Nombre de S25", _
xlCount
With Sheets("Alertes").PivotTables("Tableau croisé dynamiqueg" & Ind).PivotFields( _
"Nombre de S25")
.Caption = "S25 "
.Function = xlSum
End With
Next Ind
'Mettre à jour la semaine pour TCD à date des sites L
For Ind1 = 1 To 11
Sheets("Alertes").PivotTables("Tableau croisé dynamiques" & Ind1).PivotFields( _
"Somme de S24").Orientation = xlHidden
Sheets("Alertes").PivotTables("Tableau croisé dynamiques" & Ind1).AddDataField Sheets("Alertes"). _
PivotTables("Tableau croisé dynamiques" & Ind1).PivotFields("S25"), "Nombre de S25", _
xlCount
With Sheets("Alertes").PivotTables("Tableau croisé dynamiques" & Ind1).PivotFields( _
"Nombre de S25")
.Caption = "S25 "
.Function = xlSum
End With
Next Ind1
'Mettre à jour la semaine pour TCD des sites E
For Inde = 1 To 4
Sheets("Alertes Ext").PivotTables("Tableau croisé dynamiquee" & Inde).AddDataField _
Sheets("Alertes Ext").PivotTables("Tableau croisé dynamiquee" & Inde).PivotFields("S25"), "Nombre de S25", _
xlCount
With Sheets("Alertes Ext").PivotTables("Tableau croisé dynamiquee" & Inde).PivotFields( _
"Nombre de S25")
.Caption = "S25 "
.Function = xlSum
End With
Next Inde
End Sub
(pour info aussi, comment mettre la macro dans un champ spécial dans un message de forum)
Merci d'avance.