Bonjour a tous voila plusieurs jours et surtout heures que j essai de faire des tcd qui s 'actualiseraient sur une période de X jours en lançant une macro.
Avant toute chose je suis vraiment une bille en macro et je n'utilise d'ailleurs que la fonction enregistrement pour ensuite faire mon bricolage . donc tout le jargon technique est du chinois pour moi .
J ai réussis a faire quelque chose de pas mal ... mais je rencontre un problème sur certaine date ....j ai l impression que les jours et les mois sont inverser .... mais pas toujours .
Je vous joint mon fichier. je voudrais que mes tcd de la feuille "rapport pour client" ce mettent a jours pour la période défini par des dates que je rentre moi même en case N7 et N8 (qui seront par la suite "automatisé avec la fonction aujourdhui ) en cliquant sur le bouton au dessus .
Parfois ça fonctionne bien parfois bcp moins bien
Exemple:
- si on met en date de début 03/01/2017 et date de fin le 04/03/2017 mes tcd ne se mettent a jours que du 01/03/2017 au 04/03/2017
- si on met en date de debut 06/01/2017 et date de fin le 04/03/2017 ca me remonte un problème dans ma macro
- si on met en date de début 02/01/2017 et date de fin le 04/03/2017 mes tcd s actualise parfaitement
voila la macro que j ai bidouillé
Sub Macro7()
'
' Macro7 Macro
'
'
Dim debut, fin As String
debut = Cells(7, 14)
fin = Cells(8, 14)
ActiveWorkbook.RefreshAll
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
End Sub
Si vous pouvez m'expliquer le pourquoi du comment ........
Merci d'avance pour votre aide
Avant toute chose je suis vraiment une bille en macro et je n'utilise d'ailleurs que la fonction enregistrement pour ensuite faire mon bricolage
J ai réussis a faire quelque chose de pas mal ... mais je rencontre un problème sur certaine date ....j ai l impression que les jours et les mois sont inverser .... mais pas toujours .
Je vous joint mon fichier. je voudrais que mes tcd de la feuille "rapport pour client" ce mettent a jours pour la période défini par des dates que je rentre moi même en case N7 et N8 (qui seront par la suite "automatisé avec la fonction aujourdhui ) en cliquant sur le bouton au dessus .
Parfois ça fonctionne bien parfois bcp moins bien
Exemple:
- si on met en date de début 03/01/2017 et date de fin le 04/03/2017 mes tcd ne se mettent a jours que du 01/03/2017 au 04/03/2017
- si on met en date de debut 06/01/2017 et date de fin le 04/03/2017 ca me remonte un problème dans ma macro
- si on met en date de début 02/01/2017 et date de fin le 04/03/2017 mes tcd s actualise parfaitement
voila la macro que j ai bidouillé
Sub Macro7()
'
' Macro7 Macro
'
'
Dim debut, fin As String
debut = Cells(7, 14)
fin = Cells(8, 14)
ActiveWorkbook.RefreshAll
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique4").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotFields("Date"). _
ClearAllFilters
ActiveSheet.PivotTables("Tableau croisé dynamique5").PivotFields("Date"). _
PivotFilters.Add Type:=xlDateBetween, Value1:=debut, Value2:=fin
End Sub
Si vous pouvez m'expliquer le pourquoi du comment ........
Merci d'avance pour votre aide