Créer une liste déroulante avec VBA

EngineerinGirl Messages postés 14 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je travaille sur un logiciel assez complexe utilisant VBA. La cellule E15 est une liste déroulante OUI/NON.
-Si E15 = OUI alors il faut que D18 soit libre et VBA va y rentrer un chiffre qu'il calcule.
-Si E15 = NON alors il faut que D18 soit une liste déroulante avec 79 et 91 comme possibilités

J'ai essayé avec le code suivant :

 If Sheets("AW139 6,8T").Cells(15, 5) = "OUI" Then
 Sheets("AW139 6,8T").Cells(18, 4) = Sheets("AW139 6,8T").Cells(19, 4) / Sheets("AW139 6,8T").Cells(20, 4)
 ElseIf Sheets("AW139 6,8T").Cells(15, 5) = "NON" Then
 Sheets("AW139 6,8T").Range("D18").Locked = False
 With Range("D18").Validation
 .Delete
 .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="79,91"
 End With
 End If



J'ai a chaque fois un message d'erreur "Erreur définie par l'application ou par l'objet" et la ligne .Add Type se surligne en jaune mais je ne comprends pas ce qui est faux...
Pourriez-vous m'aider à trouver une solution s'il vous plait ?

Merci d'avance ! :)

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Il faut selectionner la cellule

Range("D18").Select
With Selection.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="79,91"
 End With
0