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

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:

Dranreb

XLDnaute Barbatruc
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 !
 

Dranreb

XLDnaute Barbatruc
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
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
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

  • Copie de Thom_aide002-1.xls
    37.5 KB · Affichages: 48
Dernière édition:

thombzh

XLDnaute Junior
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.
 

Discussions similaires

Réponses
2
Affichages
268

Statistiques des forums

Discussions
312 107
Messages
2 085 356
Membres
102 874
dernier inscrit
Petro2611