XL 2013 Liste - Validation de données avec condition complexe

Sylvain133

XLDnaute Nouveau
Bonjour à tous,

Je voulais savoir comment faire pour créer une liste à partir de la validation de données sur Excel selon une condition complexe (appelée comme telle car elle apparaît longue) :

=si($m2="A";AA;SI($m2="B";BB;si(et($m2="C";$n2="CD");CC;si(et($m2="D";$n2="DE");DD;si(et($m2="D";$n2="DF");DD;si(et($m2="D";$n2="DG");DD;si(et($m2="D";$n2="DH");DD;si(et($m2="D";$n2="DI");DD;si(et($m2="E";$n2="EF");EE;si(et($m2="E";$n2="EG");EE;si(et($m2="E";$n2="EH");EE;si(et($m2="E";$n2="EI");EE;si(et($m2="E";$n2="EJ");EE;si(et($m2="E";$n2="EK");EE;si(et($m2="F";$n2="FG");FF;si(et($m2="F";$n2="FH");F;si(et($m2="F";$n2="FI");FF;si(et($m2="F";$n2="FJ");FF;si(et($m2="F";$n2="FK");FF;"")))))))))))))))))))

Ainsi je me sers des colonnes M et N pour appliquer la validation de données à ma colonne O. Ces 2 colonnes (M et N) possèdent elles mêmes déjà une validation de données (qui fonctionne). Lorsque j'essaye de réaliser cette manipulation à partir des commandes sur Excel il m'est impossible de le faire car lorsque je choisis "Liste" et "personnalisé" la condition est trop longue pour être collée. Auriez vous une alternative s'il vous plait ? Je vois cela possible d'être réalisé uniquement en VBA mais pas ailleurs. Est-ce justre ? Si oui comment le faire ?
J'ai essayé ceci dans VBA mais cela ne fonctionne pas : (code erreur : attente de fin d'instruction)

Sub validation2()


Dim NBLIG As Integer 'compteur de lignes

'compte le nombre de lignes
NBLIG = Cells(Rows.Count, 28).End(xlUp).Row
MsgBox (NBLIG)



Dim rng As Range: Set rng = ThisWorkbook.Worksheets("Données ind. CDI").Range(Cells(1, 18), Cells(NBLIG, 18))



With rng.validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=if($m2="A",AA,if($m2="B",BB,if(and($m2="C",$n2="CD"),CC,if(and($m2="D",$n2="DE"),DD,if(and($m2="D",$n2="DF"),DD,if(and($m2="D",$n2="DG"),DD,if(and($m2="D",$n2="DH"),DD,if(and($m2="D",$n2="DI"),DD,if(and($m2="E",$n2="EF"),EE,if(and($m2="E",$n2="EG"),EE,if(and($m2="E",$n2="EH"),EE,if(and($m2="E",$n2="EI"),EE,if(and($m2="E",$n2="EJ"),EE,if(and($m2="E",$n2="EK"),EE,if(and($m2="F",$n2="FG"),FF,if(and($m2="F",$n2="FH"),FF,if(and($m2="F",$n2="FI"),FF,if(and($m2="F",$n2="FJ"),FF,if(and($m2="F",$n2="FK"),FF,"")))))))))))))))))))"
End With

End Sub



Merci d'avance pour vos retours
 

Discussions similaires

Réponses
7
Affichages
486

Statistiques des forums

Discussions
314 422
Messages
2 109 447
Membres
110 482
dernier inscrit
ilyxxxh