Bonjour,
Plutôt novice en VBA, je bute sur un problème que j'espère vous m'aiderez à résoudre.
J'ai une base de données qui me permet d'alimenter un TCD.
La base de données contient des noms de collaborateurs, les heures parcourues par missions et la période de référence.
Mon TCD compile les données avec un filtre sur la période.
Je souhaite via VBA générer une synthèse par trimestre (par copier-collage valeur des données du tcd sur une page vierge sauvegardée).
Mon problème : s'agissant d'une synthèse trimestrielle, je bute sur le code à utiliser pour vérifier que dans ma liste de pivotfields si je n'ai pas les mois 1, 2 et 3, alors j'ai un msg d'erreur.
Le fichier contenant des données confidentielles, je ne peux pas le mettre en PJ
Voici la partie de code concerné qui alimente ma USF mais sans la gestion d'erreur qui m'intéresse : en fait sur le trim, si je n'ai que mai, il me sort la synthèse, mais que sur ce mois....
'gérer une synthèse trim
If OPT_TRIM.Value = True Then
If OPT_T2.Value = True Then
Mois1 = "AVRIL"
Mois2 = "MAI"
Mois3 = "JUIN"
With Sheets("TCD_GRAPH")
.Activate
.PivotTables("TCD_VACATION").PivotFields("mois").ClearAllFilters 'enlever les filtres existants
.PivotTables("TCD_VACATION").PivotSelect "mois[All]", xlLabelOnly, _
True
With ActiveSheet.PivotTables("TCD_VACATION").PivotFields("mois") 'boucle pour filtrer sur le mois sélectionn
For i = 1 To .PivotItems.Count
If .PivotItems(i).Name = Mois1 Then
.PivotItems(i).Visible = True
ElseIf .PivotItems(i).Name = Mois2 Then
.PivotItems(i).Visible = True
ElseIf .PivotItems(i).Name = Mois3 Then
.PivotItems(i).Visible = True
Else
.PivotItems(i).Visible = False
End If
Next i
End With
End With
Sheets("TCD_GRAPH").Range("a101").CurrentRegion.Select
Selection.Copy
Sheets("vacations").Activate
Sheets("vacations").Range("a5").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
D'avance, je vous remercie pour votre précieuse aide