Option Explicit
Option Compare Text 'la casse est ignorée
'-----
Private Sub Worksheet_Change(ByVal Target As Range)
'détermination des 3 noms pour les formules de la feuille Calendrier
If Intersect(Target, [Choixcel]) Is Nothing Or [Choix] = 4 Then Exit Sub
Dim x, numero$, nom$, test As Boolean
For Each x In Split([Choixcel])
If x <> "" And x <> "-" Then If IsNumeric(x) Then numero = "_" & x & "_" Else nom = x
Next
For Each x In ThisWorkbook.Names
test = IIf(numero = "", x.Name = "Cycle_" & nom, _
x.Name Like "Cycle_*" And InStr(x.Name & "_", numero) And InStr(x.Name, nom))
If test Then ThisWorkbook.Names.Add "Cycle", x
If x.Name = "Dép_" & nom Then ThisWorkbook.Names.Add "Dép", x
If x.Name = "Durée_" & nom Then ThisWorkbook.Names.Add "Durée", x
Next
End Sub