Merci d'avoir répondu ... Maintenant cela fonctionne bien merci.
voici le petit code si ça peut aider quelqu'un d'autre ...
Il créé une liste déroulante de choix si la condition est vrai, si non il la supprime pour redevenir une cellule normale
cette formule supprime les blanc dans la liste =DECALER(_Détaillant_liste;;;NB.SI(_Détaillant_liste;"><"))
Sub menu_auto()
Application.ScreenUpdating = False
If Range("_Main_type") = "Dépence" Then
With Range("O13").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=OFFSET(_Détaillant_liste,,,COUNTIF(_Détaillant_liste,""><""))"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
Else
If Range("_Main_type") = "Revenu" Then
With Range("O13").Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End If
End Sub