Private Sub UserForm_Initialize()
     Dim Liste, i%, n$
     Me.Cbx_Création.List = Tables.[Affectation].Value
     Liste = WorksheetFunction.Transpose(Me.Cbx_Création.List) 'Liste des affectations réalisées (1 dimension)
   
     'Retirer de la liste les affectations pour lesquelles une feuille existe déjà
     On Error Resume Next
     For i = UBound(Liste) To LBound(Liste) Step -1
          n = "": n = ThisWorkbook.Worksheets(Liste(i)).Name
          If n <> "" Then Me.Cbx_Création.RemoveItem i - 1
     Next
     On Error GoTo 0
   
End Sub
Private Sub CBn_Quitter_Click()
     Unload Me
End Sub
Private Sub CBn_Ajouter_Click()
     Dim sh As Worksheet, Nom$, Scl As Slicer, SlcIt As SlicerItem, ListeActif, Mois
   
     If Me.Cbx_Création.ListIndex = -1 Then Exit Sub  'Le nom contenu dans la combo n'est pas une affectation
   
     Nom = Me.Cbx_Création.Text
     Application.ScreenUpdating = False
     Modèle_TdB.Copy before:=Tables      'Copier le Modèle
     Set sh = ActiveSheet
     sh.Name = Nom                       'Nommer la nouvelle feuille
     sh.Shapes("Btn_Nouveau").Delete
     With sh.PivotTables("Etat Mensuel")
          'Rajouter les champs des valeur du TCD
          .AddDataField .PivotFields(Nom & " Nb OT"), "Nb OT", xlSum
          .AddDataField .PivotFields(Nom & " Nb OT terminé"), "Nb OT terminé", xlSum
          .AddDataField .PivotFields(Nom & " OT restant"), "OT restant", xlSum
          'Mettre à jour le segment de choix des mois
          Set Slc = .Slicers(1)
          Slc.Name = Nom & " Mois"
          Slc.SlicerCache.Name = Nom & "_Mois"
          'liste des mois actifs (qu'on retrouve dans le tableau "_tb_Entretien" de la feuille Archives
          ListeActif = WorksheetFunction.Transpose(Tables.[Périodes_actives].Value)
          'On active tous les mois
          For Each Mois In ListeActif
               Slc.SlicerCache.SlicerItems(Mois).Selected = True
          Next
          'On désactive ceux qui ne sont pas dans la liste
          For Each SlcIt In Slc.SlicerCache.SlicerItems
               If UBound(Filter(ListeActif, SlcIt.Name)) = -1 Then SlcIt.Selected = False
          Next
     End With
     'Etiquettes et légende du graphique "Grph_Mensuel"
     Set chrt = sh.ChartObjects("Grph_Mensuel").Chart
   
     chrt.ApplyDataLabels   'ajoute toutes les étiquettes
     For Each sr In chrt.FullSeriesCollection
           'Mise en forme des étiquettes
           With sr.DataLabels.Format.Fill
                .Visible = msoTrue
                .ForeColor.RGB = RGB(255, 255, 255)
                .Transparency = 0
                .Solid
           End With
     Next
   
     chrt.SetElement (msoElementLegendBottom) 'ajoute la légende en bas du graphique
   
     'Retirer de la liste de la combo l'affection que l'on vient de traiter
     Me.Cbx_Création.RemoveItem (Me.Cbx_Création.ListIndex)
     Me.Cbx_Création.Text = ""
     Application.ScreenUpdating = True
End Sub
Private Sub Cbx_Création_Change()
     'Affichage ou non du bouton Ajouter en fonction du texte de la combo
     Select Case Me.Cbx_Création.ListIndex
          Case -1
               Me.CBn_Ajouter.Visible = False
          Case Else
               Me.CBn_Ajouter.Visible = True
     End Select
End Sub