[RESOLU] Afficher une valeur ou une liste déroulante

  • Initiateur de la discussion Initiateur de la discussion thombzh
  • 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 !

thombzh

XLDnaute Junior
Bonjour,

Dans la colonne A j'ai une liste déroulante, le choix est A ou B

Dans une autre feuille j'ai une liste déroulante nommée Test_liste
et je voudrais obtenir l'équivalent de cette formule dans données/validation/liste
=si(A1="A";"ok";Test_liste)

Mais évidemment sa ne fonctionne pas
En nommant une case ok dont la valeur est "ok" j'obtient bien le choix de mes 2 listes mais le pb est que la ligne est vierge, il faut que je sélectionne "Ok" et ce n'est pas le but.

Une idée ?

En somme : si A1=A : B1=Ok (valeur fixe)
si A1=B : B1=Test_liste (liste déroulante)
 
Dernière édition:
Re : Afficher une valeur ou une liste déroulante

Bonjour.
Essayez une sub Worksheet_Change dans le module de la feuille qui réagit au changement dans la colonne A en mettant "Ok" dans la colonne B si c'est "A" et installe la liste de validation dans le cas contraire. Fhouuu !… Que c'est long à décrire… ç'aurait été plus vite fait de le programmer !
Seulement voilà: personne, pas plus moi qu'un autre, n'a envie d'ouvrir un nouveau classeur, y reproduire, forcément à peu près, ce qui est décrit et le faire. ON VEUT TOUJOURS TRAVAILLER SUR LE CLASSEUR JOINT !
 
Re : Afficher une valeur ou une liste déroulante

Par formule, non je ne pense pas.
À la rigueur avec une référence à Test_Liste qui dépendrait de la valeur en colonne A, mais ce serait plus compliqué.
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 1 Or Target.Count <> 1 Then Exit Sub
With Target.Offset(, 1)
   .Validation.Delete
   If Target.Value = "A" Then
      .Value = "Ok"
   Else
      .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Test_liste"
      End If
   End With
End Sub
 
Re : Afficher une valeur ou une liste déroulante

Bonjour,

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 1 Then
    If Target = "A" Then
       Target.Offset(, 1) = "ok"
     Else
       Target.Offset(, 1) = ""
       Target.Offset(, 1).Select
       'SendKeys ("%{down}")
     End If
  End If
End Sub

JB
 

Pièces jointes

Dernière édition:
Re : Afficher une valeur ou une liste déroulante

Yes, entre les 2 mon coeur balance.

Comme j'ai plusieurs fichiers à faire, et que je vais être souvent confronter au même problème, je vais donc utiliser les 2.

Merci pour tout.
 
- 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

Discussions similaires

Retour