Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 Chronologie tableau dynamique

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

sendra

XLDnaute Nouveau
Bonjour Forum,
y' a't il possibilité de remplacer une chronologie par une calandrer pour faire le filtre dans un tableau dynamique ?
j'ai inséré une calandrer mais j'ai pas l'astuce pour faire une connexion avec mon tableau
 

sendra

XLDnaute Nouveau
Merci chris
oui je sais que les segments sont plus simple mais avec la calendrier c'est un plus moderne non?
donc c'est impossible de faire la connexion même avec le VBA?
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Le problème des calendriers ont qu'ils sont souvent propres à une version Excel et la plupart des compléments ont un code VBA vérouillé.

Ta version est ancienne mais microsoft ne fournit plus de contrôle calendrier sur 365.

Ils insèrent une date dans une cellule : on peut théoriquement utiliser le Worksheet change pour récupérer le changement de date et, via une boucle, filtrer un champ date du TCD ou un segment date associé.

A noter qu'une boucle est moins efficace qu'un segment.

J'ai testé 2 compléments calendrier : l'un permet de le faire (samradapps_datepicker), l’autre de Vertex42.com, fourni sur le store Microsoft, complique les choses car son code interfère...
 

sendra

XLDnaute Nouveau
Merci encore fois chris
donc c'est possible avec les macro?
 

chris

XLDnaute Barbatruc
RE

La cellule qui reçoit la date est nommée Choix

Ici synchro avec un segment basé sur le champ Date de commande (placé hors vue).

Module placé dans l'onglet portant la cellule Choix et le TCD
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Trouve As Boolean
 
    If Intersect(Target, [Choix]) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    ActiveWorkbook.SlicerCaches("Segment_Date_commande").ClearManualFilter
    If [Choix] = "" Then Exit Sub
    For Each SI In ActiveWorkbook.SlicerCaches("Segment_Date_commande").SlicerItems
        If SI.Value = Format([Choix], "dd/mm/yyyy") Then
            On Error GoTo fin
            Application.EnableEvents = False
            SI.Selected = True
            Trouve = True
        Else
            SI.Selected = False
        End If
    Next
    If Trouve = False Then MsgBox "Date introuvable"
fin:
    Application.EnableEvents = True
End Sub

A noter qu'il est préférable de désactiver la mémorisation des données du TCD afin que le cache soit nettoyé lors de l'actualisation et le segment purgé des dates disparues de la source.
 
Dernière édition:

sendra

XLDnaute Nouveau
Salut Chris,
le code ne fonctionne pas si j'ai changé les données
mon feuille est contient une feuille qui contient TCd et l(autre tableau de borde qui contient la calendrier
la feuille base est dans un power pivot
 

chris

XLDnaute Barbatruc
Bonjour

Si tu donnais les infos dès le début on n'aurait pas à recommencer x fois...

Les segments de TCD basés sur le modèle de données PowerPivot ne fonctionnent pas comme les segments de TCD classiques

Ceci devrait fonctionner si le segment a bien le nom Segment_Date
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Intersect(Target, [Choix]) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Application.EnableEvents = False
    With ActiveWorkbook.SlicerCaches("Segment_Date")
        .ClearManualFilter
        If [Choix] <> "" Then
            On Error GoTo fin0
            .VisibleSlicerItemsList = Array("[Base].[Date].&[" & Format([Choix].Value, "yyyy-mm-dd") & "T00:00:00]")
        End If
    End With

    GoTo Fin2
fin0:
    MsgBox "Date introuvable"
Fin2:
    Application.EnableEvents = True
End Sub
 

Discussions similaires

Réponses
1
Affichages
384
Réponses
1
Affichages
454
Réponses
11
Affichages
536
Réponses
2
Affichages
282
Réponses
8
Affichages
482
  • Question Question
Microsoft 365 Suivi provisionnel
Réponses
2
Affichages
336
Réponses
4
Affichages
158
Réponses
5
Affichages
232
  • Question Question
Microsoft 365 Histogramme
Réponses
4
Affichages
173
Réponses
2
Affichages
509
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…