Merci encore fois chrisBonjour
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...
samradapps_datepickerMerci encore fois chris
donc c'est possible avec les macro?
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
Salut Chris,Bonjour
Un TCD se bâtît sur un tableau structuré, pas sur une plage
J'ai bien parlé de segment pas de chronologie
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