• Initiateur de la discussion Initiateur de la discussion zidoide
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Z

zidoide

Guest
bonjour,

C'est déjà sur ce site que l'on m'a donné la première solution..

Alors voici mon blème quand je lance ma macro comment faire pour quelle ignore les blank ou flag style (*)???
 
Salut zidoide

de mémoire tu voulais aussi que ce soit la date la plus ancienne qui apparaisse après le refresh, non ?

alors essaye comme ceci :


Sub Macro3()
Dim i As Byte, j As Byte
Dim max
For i = 1 To ActiveSheet.PivotTables.Count
               
With ActiveSheet.PivotTables(i)
                                .PivotCache.Refresh
                               
With .PivotFields('DATE')
                                       
For j = 1 To .PivotItems.Count
                                               
If max < .PivotItems(j) Then max = .PivotItems(j)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next j
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .CurrentPage = max
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End With
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End With
Next i
End Sub


salut
 
re zidoide 🙂

Je t'avouerai ne jamais avoir lu autre chose que l'aide VBA comme livre, mais on me parle souvent de vba pour les nuls, qui apparement est pas mal.

En faisant une recherche sur le forum, tu devrais trouver d'autres titres.

En attendant je te redonne la macro avec quelques lignes de commentaires (désolé si c'est pas clair, je suis pas bien doué pour cet exercice).

Sub Macro3()
Dim i As Byte, j As Byte
Dim max

'boucle sur tout les tcd de la feuille
For i = 1 To ActiveSheet.PivotTables.Count
&nbsp; &nbsp;
'avec le tcd d'index i
&nbsp; &nbsp;
With ActiveSheet.PivotTables(i)
&nbsp; &nbsp; &nbsp; &nbsp;
'rafraichi le TCD
&nbsp; &nbsp; &nbsp; &nbsp; .PivotCache.Refresh
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'avec le 'champs' date de ce tcd
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
With .PivotFields('DATE')
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'pour chaque élément de ce champ
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'de 1 jusqu'au dernier (pivotitems.count)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
For j = 1 To .PivotItems.Count
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'si la valeur de cet élément est plus grand que le max, alors
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'le max=la valeur de cet élément
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
If max < .PivotItems(j) Then max = .PivotItems(j)
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
Next j
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
'la plage active doit etre celle du max
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; .CurrentPage = max
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
End With
&nbsp; &nbsp;
End With
Next i
End Sub


salut
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
446
Réponses
30
Affichages
853
Retour