Afficher une liste grâce à une condition

Bonjour à tous !

Avant de poster cette question , j'ai fait une recherche qui n'était pas fructueuse.

Donc je me permet de vous poser une question : Comment afficher une liste à l'aide d'un SI ?

Sur mon document excel, j'ai deux listes. Liste_Bm et Liste_50.

Les deux possèdent des choix. La liste_bm est mise dans la cellule A1 et la liste_50 dans la A2.

J'ai essayé: Si(A1=50;A2=liste_50;) mais cela ne fonctionne pas.

Je ne vois pas comment réussir à résoudre ceci.

J'ai aussi un problème avec un SI tout simple comme: SI (A1=50;"Ok") ne fonctionne pas...très bizarre.

Si quelqu'un peut m'aider, ça serait vraiment cool !

Merci aux personnes qui m'accorderont un peu de temps.

Cordialement,

Saokore.

Bonjour

Choisis 50 en A1 avant de faire la validation de donnée de A2 - De cette façon, dans ta validation tu peux mettre :

=SI(A1=50;liste_50;"")

Amicalement

Nad

Merci pour vos deux réponses !

C'est exactement ce que je rechercher !

Pour Banzai64:

Je ne comprends pas pourquoi dans choisir vous mettez A1-49 ? Pouvez vous m'expliquer ?

Pour Nad:

Merci, je ne savais qu'il était possible de mettres des conditions dans une validation !

Mais si je mets une valeur dans le cas Sinon, cela ne fonctionne pas ! Je veux dire que si jamais je veux mettre une valeur quand A1 n'est pas 50 comme "-" impossible, ca ne fonctionne pas !

Je vais rester avec cette version et creuser un peu plus pour mon deuxième problème merci !

Cordialement,

Saokore91.

Bonjour

Pas sûre de comprendre ton problème.

Si en A2 tu veux écrire quand même quand 50 n'est pas choisi en A1, il faut que dans la validation de données de A2, onglet "Alerte d'erreurs", tu décoches "Quand des données ..."

Amicalement

Nad

J'ai fait ce que vousm'avez dit mais ça ne change rien.

Ce n'est pas grave je chercherais plus tard, c'est pas très très important !

En tout cas, merci de votre aide !

Cordialement,

Saokore91.

Re

Regarde le fichier

638saokore91.zip (13.49 Ko)

Nad

Mhh c'est ça ! Mais comment affiche tu le "-" ? Car j'avais essayé de l'afficher avec le cas Sinon A2="-"; Mais pas moyen. Alors que dans ton fichier, je ne vois pas ou est-ce que tu lui dis d'écrire ce caractère la ?!

EDIT : oups parlé trop vite ! Au final c'est exactement ce que j'ai fait si tu met la valeur A1 à 50 et que tu choisis A2 à 2 par exemple, lors que tu remodifie A1 <> 50 bin A2 ne change pas mais reste bloqué sur "2". On est au même niveau sur ce point.

Merci de ton aide !

Re

Pour effacer A2 au changement de A1 il faut une macro.

Code à placer dans la feuille "liste" (click droit sur le nom de l'onglet, visualiser le code)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1"), Target) Is Nothing Then
Target.Offset(1, 0) = Empty
End If
End Sub

Nad

Re,

Moi qui voulais à tout pris éviter de passer par du VBA car pas trop doué

Merci pour ce bout de code !

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("A1"), Target) Is Nothing Then
Target.Offset(1, 0) = Empty
End If
End Sub

Mais je vais utiliser un code plus simple à comprendre car je suis encore un novice en VBA-Excel, voici mon code :

Private Sub worksheet_change(ByVal target As Range)
    If Range("D31") <> 50 Then
        Range("E31") = "-"
    End If
End Sub

En faisant comme ça tout fonctionne.

Merci pour ton temps Nad !

Je pense que je reviendrais bientôt pour un autre problème !

Bonne journée.

Cordialement,

Saokore91.

Bonjour

Je me permet d'intervenir

Dans une procédure événementielle surtout celle-ci

il faut arrêter les événements

 Private Sub worksheet_change(ByVal target As Range)
  If Range("D31") <> 50 Then
    Application.EnableEvents = False
    Range("E31") = "-"
    Application.EnableEvents = True
  End If
End Sub

A chaque modification d'une cellule dans ta page, la procédure viendra tester ta cellule, et le cas échéant modifiera la cellule E31

Pas gênant mais (à mon avis) inutile

Bonne journée

Rechercher des sujets similaires à "afficher liste condition"