Liste en cascade avec des SI "trop long"

  • Initiateur de la discussion Initiateur de la discussion izy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

izy

XLDnaute Nouveau
Bonjour a tous,

J'ai 2 listes en cascade qui fonctionne bien si j'ai moins de 7 items dans ma liste. Mon problème est que j'ai maintenant 19 items et la ça ne fonctionne plus !
Il y a t-il un moyen d'avoir plus de 7 item dans une liste en cascade ?

merci

voici mon code avec seulement 7 items

=SI(Y17="Bas-St-Laurent";L_Bas_St_Laurent;SI(Y17="Saguenay - Lac-St-Jean";L_Saguenay_Lac;SI(Y17="Sans objet";L_Sans_Objet;SI(Y17="Capitale-Nationale";L_Capital_National;SI(Y17="Mauricie";L_Mauricie;SI(Y17="Estrie";L_Estrie;SI(Y17="Montréal";L_Montreal;SI(Y17="Outaouais";L_Outaouais))))))))


merci de votre aide !
Izy😕
 
Re : Liste en cascade avec des SI "trop long"

Bonjour,

possible oui, je pense à une table de correspondance sur deux colonnes, avec les deux libellés l'un en face de l'autre, puis ensuite une petite fonction sans doute avec l'aide de decaler() dans la liste de validation.

Un peu la flemme de tout resaisir 😱 ... pourrais-tu nous envoyer un petit extrait de ton fichier?

@ +

mth
 
Re : Liste en cascade avec des SI "trop long"

Bonsoir Izy,

Je pense qu'à la base le problème est mal posé 😕

Que veux tu faire exactement avec ta liste déroulante ?

De toute façon il est impossible de mettre plus de 7 SI() imbriqué

A+
 
Re : Liste en cascade avec des SI "trop long"

Wow ! RESPECT !!!! 😱😱😱

j'avais trouver un autre chemin un peu plus long mais qui fonctionnait aussi

mais j'ai jamais pensé a faire ça ! tout simplement wow 😱😱😱

Merci d'avoir pris le temps, très apprécié

Izy


voici ma solution VBA : 😎

sur tout changement dans ma colonne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

On Error Resume Next

If Target.Column = 26 Then
V_REG_ADM = Target.Offset(0, -1).Value
check (V_REG_ADM)
End If

End Sub

les opérations
Function check(V_Reg)
Dim V_LISTE As Variant

Select Case Trim(V_Reg)

Case "Bas-St-Laurent"
V_LISTE = "=L_Bas_St_Laurent"
Case "Saguenay-Lac-St-Jean"
V_LISTE = "=L_Saguenay_Lac"
Case "Sans objet"
V_LISTE = "=L_Sans_Objet"
Case "Capitale-Nationale"
V_LISTE = "=L_Capital_National"
Case "Mauricie"
V_LISTE = "=L_Mauricie"
Case "Estrie"
V_LISTE = "=L_Estrie"
Case "Montréal"
V_LISTE = "=L_Montreal"
Case "Outaouais"
V_LISTE = "=L_Outaouais"
Case "Abitibi-Témiscamingue"
V_LISTE = "=L_Abitibi"
Case "Côte-Nord"
V_LISTE = "=L_Cote_Nord"
Case "Nord-du-Québec"
V_LISTE = "=L_Nord_Quebec"
Case "Gaspésie - Îles-de-la-Madeleine"
V_LISTE = "=L_Gaspesie"
Case "Chaudière-Appalaches"
V_LISTE = "=L_Chaudiere_Appalaches"
Case "Laval"
V_LISTE = "=L_Laval"
Case "Lanaudière"
V_LISTE = "=L_Lanaudiere"
Case "Laurentides"
V_LISTE = "=L_Laurentides"
Case "Montérégie"
V_LISTE = "=L_Monteregie"
Case "Centre-du-Québec"
V_LISTE = "=L_Centre_Quebec"
Case "État de New York"
V_LISTE = "=L_Etat_New_york"
End Select

V_Pos = ActiveCell.Address 'avoir l'addresse de la cellule
Range(V_Pos).Validation.Delete ' supprime la liste existant
With Range(V_Pos).Validation
.Add xlValidateList, xlValidAlertStop, xlBetween, Formula1:=V_LISTE
.InCellDropdown = True
.ShowError = True
End With

End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour