Récupération de données selon liste déroulante

Bonjour à tous,

D'ores et déjà un grand merci a tous ceux qui pourront me venir en aide sur ce sujet.

Voila mon problème:

Feuille1: Liste déroulante (A2) avec d'autres cellules a remplir

Feuille2: Informations sur chaque valeur de la liste déroulante

Ma question est la suivante:

Comment obtenir qu'en feuille1 selon la valeur de ma liste déroulante, les informations selon (feuille2) s'inscrivent dans les

cellules correspondantes.

Exemple:

Valeur 123 (A2) alors B5= a, C7= janvier, D9= 2019, E5= OK et ainsi de suite pour les autres valeurs de la liste déroulante.

Afin d'être plus explicite, je joint un fichier

Un grand merci à tous et vous souhaite une excellente journée

9infos.xlsm (11.90 Ko)

Bonjour,

En Feuille 1 :

B5 : =RECHERCHEV($A$2;Feuil2!$A$5:$I$10;3;FAUX)
C7 : =RECHERCHEV($A$2;Feuil2!$A$5:$I$10;5;FAUX)
D9 : =RECHERCHEV($A$2;Feuil2!$A$5:$I$10;7;FAUX)
E5 : =RECHERCHEV($A$2;Feuil2!$A$5:$I$10;9;FAUX)

Toujours la même formule mais la colonne ou trouver les infos change.
Plus d'info ici :RechercheV

A+

Hello Geof52,

Je viens d'essayer la réponse indiquée et cela fonctionne parfaitement.

Il est clair que j'aurais préféré un code VBA, mais vais pas faire la fine bouche car ceci

est le résultat de ce que j'espérais.

Je te remercie encore de la promptitude de ta réponse et te souhaite une excellente journée.

Merci!!!!

Alors comme ça (A mettre dans la feuil1) :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim LigneF2, DerLigneF2 As Integer
If Target = Range("A2") Then
    DerLigneF2 = Feuil2.Cells(Rows.Count, 1).End(xlUp).Row

    For LigneF2 = 5 To DerLigneF2
        If Feuil1.Cells(2, 1).Value = Feuil2.Cells(LigneF2, 1).Value Then
            Application.EnableEvents = False
            Feuil1.Cells(5, 2).Value = Feuil2.Cells(LigneF2, 3).Value
            Feuil1.Cells(7, 3).Value = Feuil2.Cells(LigneF2, 5).Value
            Feuil1.Cells(9, 4).Value = Feuil2.Cells(LigneF2, 7).Value
            Feuil1.Cells(5, 5).Value = Feuil2.Cells(LigneF2, 9).Value
            Application.EnableEvents = True
            Exit For
        End If
    Next LigneF2
End If
End Sub

A+

Hello Geof52,
Exactement ce que je recherchais!!!
Merci beaucoup pour ton appui très bonne journée
Hello Geof52,
Désolé de t'embêter mais j'aimerais savoir a quoi correspond
Dim LigneF2 ainsi que le 5 dans (For LigneF2 = 5 To DerLigneF2)
j'essaye d'adapter ton code à mon fichier de base, et c'est une question de ne pas mourir bête

D'ores et déja merci de ta réponse

Pour les Lignes en feuille 2 allant de 5 a la derniere

For LigneF2 = 5 To DerLigneF2

DerLigneF2 prenant les valeurs de la premiere colonne grace au 1

DerLigneF2 = Feuil2.Cells(Rows.Count, 1).End(xlUp).Row

Ton fichier :

image

Si la liste déroulante correspond a 126, LigneF2 va passer de 5 a 6 (grace a "next LigneF2") sans rien faire mais a la ligne 7 il va trouver la valeur 126

 If Feuil1.Cells(2, 1).Value = Feuil2.Cells(LigneF2, 1).Value Then

Donc au moment ou LigneF2 passera a 7, tu auras la fonction si qui sera "vrai" et donc un repport de valeur entre ta feuille 22 et la feuille 1

            Feuil1.Cells(5, 2).Value = Feuil2.Cells(LigneF2, 3).Value
            Feuil1.Cells(7, 3).Value = Feuil2.Cells(LigneF2, 5).Value
            Feuil1.Cells(9, 4).Value = Feuil2.Cells(LigneF2, 7).Value
            Feuil1.Cells(5, 5).Value = Feuil2.Cells(LigneF2, 9).Value

On sait que la ligne utile etait la 7 donc le reste (de 8 a 10),ne va pas servir on fait donc un Exit For.

Pour "Application.EnableEvents = False" c'est juste pour ne pas qu'il recherche inutilement une procedure évenementielle dont on a pas besoin.

A+

Hello Geof52,

Navré de te demander encore de m'accorder un peu de ton temps.

Malgré toutes tes explications, tous mes essais et l'effort d'essayer de comprendre, je n'ai pas
réussi à adapter ton code à mon fichier de base.

Je dois me rendre à l'évidence que soit je ne suis pas très doué, soit il me reste encore beaucoup a apprendre
et ce n'est pas faute d'avoir essayé.

Peut-être me suis-je attaque a un défi trop compliqué pour mes connaissances.

Je te fais parvenir un fichier simplifié afin d'obtenir la réponse à mes erreurs, évidemment
7fiche-essai.xlsm (158.49 Ko)
si tu as le temps de
t'en occuper, si non je partirai avec ta première solution hors VBA.

Te réitérant d'ors et déjà tous mes remercîments pour le temps accordé, te souhaite une excellente fin de journée

Désole te renvoie un nouveau fichier car la cellule en M11 est inutile à remplir

seule les deux cellules en jaunes sont concernées par la liste déroulante en G11

5fiche-essai.xlsm (158.67 Ko)
12fiche-essai-geof.xlsm (157.40 Ko)

Je suis parti sur ton premier fichier j'ai vu que Operation n'existait pas donc la macro est correct dans ce fichier joint.

"Ton erreur", la feuille 1 etait en faite ta feuille 2 et inversement

image

Et il faut mettre la macro sur la feuille qui a la liste déroulante car c'est une procedure qui s'execute quand la cellule change (procedure evenementiel "Worksheet_Change") pas besoin de macro sur la feuille Lexique.

SUPER!!!!!

Cela fonctionne à merveille!!!

Te remercie de ta patience, ainsi que de toutes tes informations et encore mille excuses

de t'avoir pris du temps avec mon erreur grossière.

Très bonne fin de soirée

Rechercher des sujets similaires à "recuperation donnees liste deroulante"