faire une liste déroulante avec des si

geo66

XLDnaute Nouveau
Bonjour
Je me suis créé un petit fichier pour planifier mes ramasses en exploitation transport, mais je bute sur un problème :
-en haut du fichier catégorie entreprise, j'ai fait un menu déroulant (oui/non) pour savoir si on doit passer chez ce client ou pas. ce que je veux créer, c'est une liste déroulante(qui est déjà créer en catégorie ramasse fichier mais pas comme je le veux)avec le nom des entreprises ou le oui figure en face en haut .
Pour plus d'info, n'hésitez pas à demander.
 

Pièces jointes

  • Classeur2.xlsx
    87.6 KB · Affichages: 62
  • Classeur2.xlsx
    87.6 KB · Affichages: 65
  • Classeur2.xlsx
    87.6 KB · Affichages: 68

geo66

XLDnaute Nouveau
Re : faire une liste déroulante avec des si

bonsoir
je viens d'essayer la formule mais ça ne marche pas .
En fait ce que je cherche : dans la colonne "Ramasse aujourdhui", si je mets"non", je ne veux pas que ce client soit affiché dans les menus déroulants à partir de L95et bien sur si je met oui, il s'affiche. je me doute qu'il ya une formule à faire dans la validation de données mais je ne sais pas laquelle .
merci
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : faire une liste déroulante avec des si

Bonsoir le fil, bonsoir le forum,

Un proposition VBA avec la macro évémentielle Change ci-dessous :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim lv As String 'déclare la variable lv (Liste de Validation)

'si le changement a lieu ailleur que dans la plage R5:R35 ou si la sélection contient plus d'une seule cellule, sort de la procédure
If Application.Intersect(Target, Range("R5:R35")) Is Nothing Or Selection.Cells.Count > 1 Then Exit Sub

For Each cel In Range("A5:A35") 'boucle sur toutes les cellules de la plage A5:A35
    'si la cellule correspondante de la colonne R de cel est "oui", définit la liste de validation lv
    If cel.Offset(0, 17).Value = "oui" Then lv = IIf(lv = "", cel.Value, lv & "," & cel.Value)
Next cel 'prochaine cellule de la boucle
With Range("A65:A129").Validation 'prend en compte la validation données de la plage A65:A129
    .Delete 'supprime une éventuelle liste éxistante
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=lv 'attribue la liste de validation lv
End With 'fin de la prise en compte de...
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : faire une liste déroulante avec des si

Bonsoir le fil, bonsoir le forum,

le code que je te propose est adapté à ton fichier exemple. Il suffit de le copier, puis de cliquer avec le bouton droit sur le nom de l'onglet (en bas) et choisir l'option Visualiser le code. Cela t'ouvrira l'e'diteur VBE. La tu colles le code dans le grand rectangle blanc à droite. Le code agit à chaque changement oui/non dans la plage R5:R35. La validation des données actualisée s'appliquera à toute la plage A65:A129.
 

CISCO

XLDnaute Barbatruc
Re : faire une liste déroulante avec des si

Bonsoir

Cf. la méthode en AB5:AB10 (plage nommée listeoui, à réutiliser dans une liste déroulante) dans la pièce jointe (formule matricielle à valider avec ctrl+maj+entrer, plages à adpater à ton fichier réel).

@ plus
 

Pièces jointes

  • Classeur2.xlsx
    89.1 KB · Affichages: 43
  • Classeur2.xlsx
    89.1 KB · Affichages: 41
  • Classeur2.xlsx
    89.1 KB · Affichages: 48

geo66

XLDnaute Nouveau
Re : faire une liste déroulante avec des si

Merci
j'ai essayé la formule mais en l'adaptant à mes colonnes(la valeur pour l'index est le nom des entreprises et non le nom des conducteurs), mais ça ne marche pas, donc je remet le fichier avec la modif qui ne marche pas .
 

Pièces jointes

  • Copie de Classeur2.xlsx
    89 KB · Affichages: 45
  • Copie de Classeur2.xlsx
    89 KB · Affichages: 44
  • Copie de Classeur2.xlsx
    89 KB · Affichages: 46

CISCO

XLDnaute Barbatruc
Re : faire une liste déroulante avec des si

Bonjour

Deux "détails" à respecter pour que la formule fonctionne correctement :
1) La plage indiquée par INDEX doit commencer ligne 1, ce qui donne ici Q$1:Q$90 (cf. l'aide et les paramètres de la fonctin INDEX)
2) Il s'agit d'une formule matricielle. Il faut donc la valider en appuyant simultanément sur ctrl+maj+entrer, ce qui fait apparaître les accolades avant et après la formule.

@ plus
 

Pièces jointes

  • Copie de Classeur2.xlsx
    89.1 KB · Affichages: 37
  • Copie de Classeur2.xlsx
    89.1 KB · Affichages: 40
  • Copie de Classeur2.xlsx
    89.1 KB · Affichages: 39

Discussions similaires

Réponses
8
Affichages
248

Statistiques des forums

Discussions
312 492
Messages
2 088 914
Membres
103 983
dernier inscrit
AlbertCouillard