OVH Cloud OVH Cloud

liste déroulante non systématique

4 réponses
Avatar
Christophe
Bonjour,

Je souhaiterais pouvoir faire cela :
-si A1=x alors A2 = toto
-si A1=y alors A2 = tata
-mais si A1=z alors A2 me présente une liste déroulante dans laquelle je
choisis une certaine valeur

Comment peut-on faire ?

Saluuuuuuut à tous !

C.

4 réponses

Avatar
papou
Bonjour Christophe
A part avec vba, je ne vois pas donc si cela te convient voici un exemple
(pour le tester clic droit sur l'onglet de ta feuille, visualiser le code et
coller les lignes suivantes)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Cells.Count > 1 Then Exit Sub
Select Case Target.Value
Case Is = "x"
Target.Offset(0, 1).Value = "toto"
Case Is = "y"
Target.Offset(0, 1).Value = "tata"
Case Is = "z"
With Target.Offset(0, 1)
.Validation.Add xlValidateList, , , "Element 1,Element 2,Element 3"
End With
End Select
End Sub

Cordialement
Pascal

"Christophe" a écrit dans le message de
news:
Bonjour,

Je souhaiterais pouvoir faire cela :
-si A1=x alors A2 = toto
-si A1=y alors A2 = tata
-mais si A1=z alors A2 me présente une liste déroulante dans laquelle je
choisis une certaine valeur

Comment peut-on faire ?

Saluuuuuuut à tous !

C.




Avatar
papou
Oups petite correction (pour supprimer la zone de liste lorsqu'elle a été
créée lors d'une première saisie)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Cells.Count > 1 Then Exit Sub
Select Case Target.Value
Case Is = "x"
Target.Offset(0, 1).Value = "toto"
On Error Resume Next
Target.Offset(0, 1).Validation.Delete
Case Is = "y"
Target.Offset(0, 1).Value = "tata"
On Error Resume Next
Target.Offset(0, 1).Validation.Delete
Case Is = "z"
With Target.Offset(0, 1)
.Validation.Add xlValidateList, , , "Element 1,Element 2,Element 3"
End With
End Select
End Sub

Cordialement
Pascal

"papou" <cestpasbonpapou@çanonplus44.fr> a écrit dans le message de
news:
Bonjour Christophe
A part avec vba, je ne vois pas donc si cela te convient voici un exemple
(pour le tester clic droit sur l'onglet de ta feuille, visualiser le code
et

coller les lignes suivantes)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Cells.Count > 1 Then Exit Sub
Select Case Target.Value
Case Is = "x"
Target.Offset(0, 1).Value = "toto"
Case Is = "y"
Target.Offset(0, 1).Value = "tata"
Case Is = "z"
With Target.Offset(0, 1)
.Validation.Add xlValidateList, , , "Element 1,Element 2,Element
3"

End With
End Select
End Sub

Cordialement
Pascal

"Christophe" a écrit dans le message de
news:
Bonjour,

Je souhaiterais pouvoir faire cela :
-si A1=x alors A2 = toto
-si A1=y alors A2 = tata
-mais si A1=z alors A2 me présente une liste déroulante dans laquelle je
choisis une certaine valeur

Comment peut-on faire ?

Saluuuuuuut à tous !

C.








Avatar
Céline Brien
Bonjour Christophe,
Une solution sans VBA.
Dans une feuille à part :
En A1 taper toto
En B taper tata
En C1 à C? taper les éléments de ta liste
Nommer A1 ListeX
Nommer B1 ListeY
Nommer C1 à C? ListeY
Revenir à la cellule A2 de la feuille 1.
Menu Données, Validation, Autoriser, Liste, Source =INDIRECT("Liste"&A1)
Malheureusement, avec cette solution, tu dois dérouler la liste pour
obtenir toto et tata.
Peut-être que d'autres pourront t'aider trouver le reste de la solution.
Bonne chance,
Céline

"Christophe" a écrit dans le message de
news:
Bonjour,

Je souhaiterais pouvoir faire cela :
-si A1=x alors A2 = toto
-si A1=y alors A2 = tata
-mais si A1=z alors A2 me présente une liste déroulante dans laquelle
je

choisis une certaine valeur

Comment peut-on faire ?

Saluuuuuuut à tous !

C.




Avatar
Christophe
Certes le problème n'est pas complètement résolu...merci quand même !

J'en appelle donc à toutes les âmes charitables pour savoir si c'est
possible sans VBA (et à mon avis ça doit l'être)...

C.



"Céline Brien" a écrit dans le message de
news:
Bonjour Christophe,
Une solution sans VBA.
Dans une feuille à part :
En A1 taper toto
En B taper tata
En C1 à C? taper les éléments de ta liste
Nommer A1 ListeX
Nommer B1 ListeY
Nommer C1 à C? ListeY
Revenir à la cellule A2 de la feuille 1.
Menu Données, Validation, Autoriser, Liste, Source > =INDIRECT("Liste"&A1)
Malheureusement, avec cette solution, tu dois dérouler la liste pour
obtenir toto et tata.
Peut-être que d'autres pourront t'aider trouver le reste de la solution.
Bonne chance,
Céline

"Christophe" a écrit dans le message de
news:
Bonjour,

Je souhaiterais pouvoir faire cela :
-si A1=x alors A2 = toto
-si A1=y alors A2 = tata
-mais si A1=z alors A2 me présente une liste déroulante dans laquelle
je

choisis une certaine valeur

Comment peut-on faire ?

Saluuuuuuut à tous !

C.