Combiner si, recherchev et liste déroulante
badarledur
Messages postés
397
Date d'inscription
Statut
Membre
Dernière intervention
-
badarledur Messages postés 397 Date d'inscription Statut Membre Dernière intervention -
badarledur Messages postés 397 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'aimerais savoir s'il est possible d'avoir une formule qui permettrait de faire l'action suivante :
1: a
2: b
3 : pourrait être "c", pourrait être "d"
la formule permettrait de donner soit la constante associée à la valeur, soit une liste déroulante qui permettrait de saisir la variable.
si j'ai 1 en A1 , alors ça m'affiche "a" en B1
si j'ai 2, en A1 alors ça m'affiche "b" en B1
si j'ai 3 en A1 alors ça donne accès à une liste déroulante en B1 où je peux sélectionner "c" ou "d"
Par avance merci!
j'aimerais savoir s'il est possible d'avoir une formule qui permettrait de faire l'action suivante :
1: a
2: b
3 : pourrait être "c", pourrait être "d"
la formule permettrait de donner soit la constante associée à la valeur, soit une liste déroulante qui permettrait de saisir la variable.
si j'ai 1 en A1 , alors ça m'affiche "a" en B1
si j'ai 2, en A1 alors ça m'affiche "b" en B1
si j'ai 3 en A1 alors ça donne accès à une liste déroulante en B1 où je peux sélectionner "c" ou "d"
Par avance merci!
A voir également:
- Combiner si et liste déroulante excel
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Excel cellule couleur si condition texte - Guide
6 réponses
Bonjour
Tu ne peux pas avoir dans une même cellule une formule et une liste déroulante
Pour ce que tu veux faire il faut passer par une macro qui se déclenche à l'entrée d'une valeur en A1
Macro à mettre dans la worksheet de la feuille concernée 'Alt + F11 pour ouvrir l'éditeur VBA - double-cliquer sur la feuille dans l'arborescence VBA Projetc à gauche - Copier-coller la macro - Fermer l'éditeur)
Cdlmnt
Via
Tu ne peux pas avoir dans une même cellule une formule et une liste déroulante
Pour ce que tu veux faire il faut passer par une macro qui se déclenche à l'entrée d'une valeur en A1
Macro à mettre dans la worksheet de la feuille concernée 'Alt + F11 pour ouvrir l'éditeur VBA - double-cliquer sur la feuille dans l'arborescence VBA Projetc à gauche - Copier-coller la macro - Fermer l'éditeur)
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A1")) Is Nothing Then Range("B1").Validation.Delete Range("B1") = "" Select Case Target.Value Case 1 Range("B1") = "a" Case 2 Range("B1") = "b" Case 3 Range("B1").Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="c,d" End Select End If End Sub
Cdlmnt
Via
Bonjour
Si tu n'y arrives pas, notamment si le cas est plus complexe que comme tu l'as exposé, poste un exemple de ton fichier (avec des noms bidons si nécessaire) sur cjoint.com, copie le lien créé et reviens le coller, en indiquant exactement quelles cellules sont concernées et quelles valeurs doivent contenir la liste déroulante, je regarderai ça
Cdlmnt
Via
Si tu n'y arrives pas, notamment si le cas est plus complexe que comme tu l'as exposé, poste un exemple de ton fichier (avec des noms bidons si nécessaire) sur cjoint.com, copie le lien créé et reviens le coller, en indiquant exactement quelles cellules sont concernées et quelles valeurs doivent contenir la liste déroulante, je regarderai ça
Cdlmnt
Via
Bonjour
Ton fichier en retour avec la macro adéquate
https://www.cjoint.com/c/JKCnXUiolNI
Elle se base sur la liste nommée fonctions que j'ai mise en colonne R de Paramètres où tu pourras la modifier
Cdlmnt
Via
Ton fichier en retour avec la macro adéquate
https://www.cjoint.com/c/JKCnXUiolNI
Elle se base sur la liste nommée fonctions que j'ai mise en colonne R de Paramètres où tu pourras la modifier
Cdlmnt
Via
je rencontre un petit problème.
Lorsque je clique sur le bouton "rafraichir le formulaire", j'ai une fenêtre d'erreur qui s'ouvre.
J'ai bien essayé de refaire la macro de rafraichissement du formulaire, sans pour autant, toucher à la cellule contenant l'information "Intervenant" mais rien à faire, le message d'erreur apparaît toujours.
En dehors de ça, c'est vraiment super. C'est exactement ce que je voulais.
Mille fois merci encore!
Lorsque je clique sur le bouton "rafraichir le formulaire", j'ai une fenêtre d'erreur qui s'ouvre.
J'ai bien essayé de refaire la macro de rafraichissement du formulaire, sans pour autant, toucher à la cellule contenant l'information "Intervenant" mais rien à faire, le message d'erreur apparaît toujours.
En dehors de ça, c'est vraiment super. C'est exactement ce que je voulais.
Mille fois merci encore!
Ah oui je n'avais pas pensé au rafraichissement ! (c'est le ClearContents de C qui occasionne l'erreur)
Dans le module 10 remplace cette ligne
Range("C9:D9,C11:D11,C13:D13,C15:D15,C17:D17,C19:D19,C21:D21").Select
par ces 2 ci :
Range("C11:D11,C13:D13,C15:D15,C17:D17,C19:D19,C21:D21").Select
Range("C9") = ""
Cdlmnt
Via
Dans le module 10 remplace cette ligne
Range("C9:D9,C11:D11,C13:D13,C15:D15,C17:D17,C19:D19,C21:D21").Select
par ces 2 ci :
Range("C11:D11,C13:D13,C15:D15,C17:D17,C19:D19,C21:D21").Select
Range("C9") = ""
Cdlmnt
Via
Bonjour Via,
Ca fonctionne presque!
Les informations contenues dans "C11:D11", "C17:D17" et "C19:D19" ne sont pas effacées.
Mais peut être que j'ai mal modifié le code. Voici celui utilisé dans le module 10 maintenant :
Sub RAFRAICHIR_FORMULAIRE()
'
' RAFRAICHIR_FORMULAIRE Macro
'
'
Range("C11:D11,C13:D13,C15:D15,C17:D17,C19:D19,C21:D21").Select
Range("C9") = ""
Range("C15").Activate
Selection.ClearContents
Range("C9:D9").Select
End Sub
Je ne comprends pas pourquoi ça ne s'efface pas ><. Les champs font bien partis de la première ligne du code
Ca fonctionne presque!
Les informations contenues dans "C11:D11", "C17:D17" et "C19:D19" ne sont pas effacées.
Mais peut être que j'ai mal modifié le code. Voici celui utilisé dans le module 10 maintenant :
Sub RAFRAICHIR_FORMULAIRE()
'
' RAFRAICHIR_FORMULAIRE Macro
'
'
Range("C11:D11,C13:D13,C15:D15,C17:D17,C19:D19,C21:D21").Select
Range("C9") = ""
Range("C15").Activate
Selection.ClearContents
Range("C9:D9").Select
End Sub
Je ne comprends pas pourquoi ça ne s'efface pas ><. Les champs font bien partis de la première ligne du code
Bonjour,
merci beaucoup pour la réponse apportée.
j'y comprends pour le moment pas grand chose mais je vais étudier la solution!
merci beaucoup pour la réponse apportée.
j'y comprends pour le moment pas grand chose mais je vais étudier la solution!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
J’ai essayé la solution que tu m’as proposé. Avec l’exemple que je t’ai donné, tout fonctionne bien mais quand dans la macro j’essaie de faire les correspondances avec mes données réelles en effet ça ne fonctionne plus.
Du coup, voici le lien vers mon fichier.
https://www.cjoint.com/c/JKCfZzGMEtD
Et voilà ce que j’aimerais pouvoir faire.
Dans l’onglet, formulaire, la liste des activités proposées évolue en fonction du choix du financement.
Ce que je voudrais c’est , quand il s’agit d'une activité relevant d'un financement 1 ou 3, que l’intervenant de l'activité s’affiche directement, comme c’est le cas actuellement avec la fonction index combinée à equiv.
Mais quand l’activité choisie relève du financement 2, j’aimerais que dans l’espace réservé à l’information « intervenant », une liste déroulante apparaisse afin de pouvoir sélectionner manuellement la fonction qui correspond à l’intervenant.
La liste déroulante en question est celle que j’ai fait apparaître sur le côté du formulaire « liste des fonctions : fonction 1, fonction 2, fonction 3, etc… »
J’ai essayé d’enlever les données « sensibles » de mon fichier. A ce titre là, la liste des fonctions proposées dans le fichier n’est pas la liste finale . A terme, je serai amené à remplacer « fonction 1 », « fonction 2 », etc.. par de vraies noms de fonction.
J’espère que ma demande est assez claire…
En te remerciant par avance….
J’ai essayé la solution que tu m’as proposé. Avec l’exemple que je t’ai donné, tout fonctionne bien mais quand dans la macro j’essaie de faire les correspondances avec mes données réelles en effet ça ne fonctionne plus.
Du coup, voici le lien vers mon fichier.
https://www.cjoint.com/c/JKCfZzGMEtD
Et voilà ce que j’aimerais pouvoir faire.
Dans l’onglet, formulaire, la liste des activités proposées évolue en fonction du choix du financement.
Ce que je voudrais c’est , quand il s’agit d'une activité relevant d'un financement 1 ou 3, que l’intervenant de l'activité s’affiche directement, comme c’est le cas actuellement avec la fonction index combinée à equiv.
Mais quand l’activité choisie relève du financement 2, j’aimerais que dans l’espace réservé à l’information « intervenant », une liste déroulante apparaisse afin de pouvoir sélectionner manuellement la fonction qui correspond à l’intervenant.
La liste déroulante en question est celle que j’ai fait apparaître sur le côté du formulaire « liste des fonctions : fonction 1, fonction 2, fonction 3, etc… »
J’ai essayé d’enlever les données « sensibles » de mon fichier. A ce titre là, la liste des fonctions proposées dans le fichier n’est pas la liste finale . A terme, je serai amené à remplacer « fonction 1 », « fonction 2 », etc.. par de vraies noms de fonction.
J’espère que ma demande est assez claire…
En te remerciant par avance….