XL 2016 Liste déroulante "pré-chargée"

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

ERUN

XLDnaute Nouveau
Bonjour à vous,
Je suis en train de réaliser un tableau plutôt complexe par rapport à mes maigres compétences sur Excel et là, j'avoue sécher.
Je joins, bien entendu, un modèle assez similaire -mais très épuré- du tableau que je suis en train de "construire".

Grosso modo : 3 onglets : 1 saisie, 1 base de donnés et 1 consultation.

Mon onglet saisie permet, comme son nom l'indique, de saisir les éléments concernant une personne.
Certaines de ces saisies se font via une liste déroulante, comme le sexe (dans l'exemple).
J'ai réussi, grâce à une macro, à ajouter un bouton "Ajouter nouveau client" et à automatiser l'importation des différents éléments sur une nouvelle ligne de ma base de données, située dans l'Onglet base de données.

Le problème se situe dans l'onglet Consultation.
En effet, via une liste déroulante, je parviens "très facilement" à retrouver les données saisies via une "recherchev".
Cependant, j'aurais voulu que les éléments qui doivent être saisis via une liste déroulante apparaissent également sous forme de liste déroulante, avec la réponse pré-sélectionnée.
Dans mon modèle, si je sélectionne "Client trois", j'aurais souhaité qu'outre la date de naissance et l'identifiant, le sexe :"2 ~ Fille" apparaisse dans la case D6 correspondante en tant qu'élément pré-sélectionné dans la liste déroulante de cette cellule.
=> L'idée sous-jacente est que dans un futur proche, cet onglet 'Consultation' devienne un onglet 'Consultation/mise à jour' et que certains éléments des listes déroulantes puissent être modifiés afin de mettre à jour la base de données.

Je vous remercie d'avance pour les pistes et idées que vous pourrez m'apporter
 

Pièces jointes

Bonjour Erun,
Si j'ai bien compris le problème ...
Une cellule ne peut pas contenir une valeur entrée et une formule. ( hors macro VBA )
Donc D6 est soit une liste déroulante, soit une formule.
La formule pourrait être :
VB:
=SI(RECHERCHEV(D3;BdD!A1:F100;5;0)=1;"Garçon";"Fille")
 
Bonjour,

Colle cette macro dans le module de la feuille Consult :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$D$3" Or Target.Count > 1 Then Exit Sub
  If Application.VLookup(Target.Value, [BdD!A:E], 5, 0) = 1 Then
    [D6] = "1 ~ Garçon"
  Else
    [D6] = "2 ~ Fille"
  End If
End Sub

Daniel
 
Bonjour Erun,
Si j'ai bien compris le problème ...
Une cellule ne peut pas contenir une valeur entrée et une formule. ( hors macro VBA )
Donc D6 est soit une liste déroulante, soit une formule.
La formule pourrait être :
VB:
=SI(RECHERCHEV(D3;BdD!A1:F100;5;0)=1;"Garçon";"Fille")
Merci pour cette réponse...
J'ai continué mes recherches, et j'ai découvert qu'une Cellule contenant une liste déroulante peut également contenir une formule si l'on désactive le message d'alerte le temps de faire la saisie et qu'ensuite, on la réactive.
La solution est donc très proche de la formule proposée sauf qu'elle inclue également la liste déroulante...
Je vais faire un post final en publiant la solution que j'ai trouvé...
Merci !
 
Bonjour,

Colle cette macro dans le module de la feuille Consult :

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$D$3" Or Target.Count > 1 Then Exit Sub
  If Application.VLookup(Target.Value, [BdD!A:E], 5, 0) = 1 Then
    [D6] = "1 ~ Garçon"
  Else
    [D6] = "2 ~ Fille"
  End If
End Sub

Daniel
Merci pour cette formule.
Je viens de la tester et cela fonctionne.
Cependant, j'avais trouvé une solution entre mon post et votre réponse.
En effet, j'ai découvert qu'une Cellule contenant une liste déroulante peut également contenir une formule si l'on désactive le message d'alerte le temps de faire la saisie et qu'ensuite, on la réactive.
La solution que j'ai utilisée a été de coupler une formule proche de la votre dans la cellule et une liste déroulante.
Je vais faire un post final en publiant la solution que j'ai trouvé...
Merci !
 
J'apporte donc ma propre réponse et un peu ma pierre à l'édifice !

J'ai donc découvert qu'il était possible d'écrire une formule dans une cellule où se trouve une liste déroulante.
Il faut pour cela Désactiver les alertes d'erreur dans la dite cellule avec liste déroulante.
Une fois cette étape faite, il faut indiquer la formule :
=SI(RECHERCHEV(D3;BdD!A:F;5;FAUX)=1;K1;K2)
=> Celle-ci recherche la valeur dans la base de données et indique la réponse formatée de la liste déroulante 1 ~ Garçon ou 2 ~ Fille.
Il faut Réactiver les alertes d'erreur dans la cellule.

Et le résultat attendu est obtenu...

Je remets mon fichier -mis à jour- en PJ, en espérant que cela puisse aider quelqu'un !
 

Pièces jointes

Re,
Désolé sur mon PC cela ne marche pas.
1- Je choisit Client Trois, le sexe se met bien à jour
2- Dans le sexe je choisit Garçon
3- Je choisit de nouveau Client Trois, le sexe a disparu car la formule a été écrasé par le choix fait.
Test4.gif
 
Re,
Désolé sur mon PC cela ne marche pas.
1- Je choisit Client Trois, le sexe se met bien à jour
2- Dans le sexe je choisit Garçon
3- Je choisit de nouveau Client Trois, le sexe a disparu car la formule a été écrasé par le choix fait.
Regarde la pièce jointe 1212471
Euh... je dirais que cela marche pour l'utilité que j'en ai (pour le moment)... et donc, je me suis arrêté là et je n'ai pas exploré plus loin...
=> Explications :
- pour le moment, il ne s'agit pour moi que de consulter les données écrites dans la Base de Données (nul besoin, pour le moment, de modifier le contenu d'une liste déroulante) ;
- si jamais, l'onglet consultation doit devenir un onglet 'Consultation/mise à jour', il faudra alors que je prenne en compte ce point...
- alors, je mettrai sans doute en place une macro qui mettra à jour toutes les données de BdDonnées et qui effacera toutes les cases de l'onglet 'Consultation/MàJ', en recopiant également la formule adéquate dans les cellules comme celle-ci

Merci grandement pour la remarque...

Et donc, cela signifie que pour aller plus loin, la macro proposée par danielco pourrait également être plus adaptée.
 
- 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

Réponses
5
Affichages
282
Retour