Microsoft 365 Remplir une colonne en fonction d'une autre (Liste Multiple)

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 !

caba1023

XLDnaute Nouveau
J'essaye de poster ici car je ne trouve pas de solution à mon problème.

Bonjour,

Contexte : Je cherche à trier les infos d'une base de données sur une fiche de manières différentes.

Problématique : Sur la fiche 1, j'ai une base de données avec sur la colonne 1 : N°commande et sur la colonne 2 : les dates correspondantes aux commandes.
Sur la fiche 2, je cherche à remplir une colonne "dates" en fonction du n°commande que je sélectionne dans la liste déroulante. La subtilité est que je veux insérer plusieurs infos dans la même cellule (car je dois trié ça de cette façon avec d'autres paramètres pas importants ici), ce qui implique une liste déroulante multiple. J'ai pris appui sur ce code VBA (https://trumpexcel.com/select-multiple-items-drop-down-list-excel/ pour la liste multiple sans répétition dans la fiche 2.

Où j'en suis : En ce moment, sur la fiche 2 je peux sélectionner et insérer plusieurs N°commande dans la même cellule dans la colonne "N°commande", mais maintenant, je cherche à remplir les cellules de la colonne "dates" avec les dates correspondantes aux N°commande.

Exemple : Sur la base de données "fiche 1", Colonne 1, j'ai sur des cellules séparées:
N°Commande
234
235
236

Fiche 1 colonne 2, j'ai sur des cellules séparées:
Date
12.12.2020
13.11.2021
17.11.2021

Sur la Fiche 2, Colonne 1, j'ai sur la même cellule (en sélectionnant depuis la liste déroulante chaque numéro de commande) :
234, 235, 236

Sur la Fiche 2, Colonne 2, je cherche à avoir sur la même cellule (en fonction du numéro de commande ajouté précédemment) :
12.12.2020, 13.11.2021, 17.11.2021

Si quelqu'un comprends la problématique et peut m'aider, c'est volontiers.

Voici le fichier exemple pour une visualisation plus claire ci-joint :

Salut!
 

Pièces jointes

Solution
Bonjour Caba, et bienvenu sur XLD,
Je vous propose une petite fonction perso, ce qui simplifie beaucoup l'approche.
VB:
Function ChercheDates(N$)
    Dim T, i%, Valdate
    T = Split(N, ",")
    ChercheDates = ""
    For i = 0 To UBound(T)
        Valdate = Application.VLookup(Val(Trim(T(i))), Sheets("Base_de_donnee").[A:B], 2, False)
        ChercheDates = Format(Valdate, "dd.mm.yyyy") & "," & ChercheDates
        ChercheDates = Mid(ChercheDates, 1, Len(ChercheDates) - 1)
    Next i
End Function
Bonjour Caba, et bienvenu sur XLD,
Je vous propose une petite fonction perso, ce qui simplifie beaucoup l'approche.
VB:
Function ChercheDates(N$)
    Dim T, i%, Valdate
    T = Split(N, ",")
    ChercheDates = ""
    For i = 0 To UBound(T)
        Valdate = Application.VLookup(Val(Trim(T(i))), Sheets("Base_de_donnee").[A:B], 2, False)
        ChercheDates = Format(Valdate, "dd.mm.yyyy") & "," & ChercheDates
        ChercheDates = Mid(ChercheDates, 1, Len(ChercheDates) - 1)
    Next i
End Function
 

Pièces jointes

Merci beaucoup, c'est ce dont j'avais besoin pour que ça fonctionne. J'ai juste inverser l'ordre des dates pour que ça corresponde à l'ordre des commandes et rajouter un espace " " à la fin pour qu'il n'y ait pas une partie de la date qui soit écrasées après 2 saisies. Dû à ma manipulation, j'ai du rajouter une condition if pour ne pas rajouter la virgule au début de la première saisie de la date.

VB:
Function ChercheDates(N$)
    Dim T, i%, Valdate
    T = Split(N, ",")
    ChercheDates = ""
    For i = 0 To UBound(T)
        If i = 0 Then
        Valdate = Application.VLookup(Val(Trim(T(i))), Sheets("Base_de_donnee").[A:B], 2, False)
        ChercheDates = ChercheDates & Format(Valdate, "dd.mm.yyyy") & " "
        ChercheDates = Mid(ChercheDates, 1, Len(ChercheDates) - 1)
        Else
        Valdate = Application.VLookup(Val(Trim(T(i))), Sheets("Base_de_donnee").[A:B], 2, False)
        ChercheDates = ChercheDates & ", " & Format(Valdate, "dd.mm.yyyy") & " "
        ChercheDates = Mid(ChercheDates, 1, Len(ChercheDates) - 1)
        End If
    Next i
End Function
 

Pièces jointes

Bonjour,

J'ai un fichier Excel sur lequel je veux pouvoir renseigner une colonne sous forme de liste déroulante (colonne B).
Mais en fonction de l'information saisie depuis cette liste déroulante, je souhaite qu'en colonne A soit saisie automatiquement une autre donnée.
Par exemple, si je sélectionne quelqu'un dans la liste déroulante, je souhaite qu'en colonne A m'affiche l'équipe concernée parmi plusieurs.

Comment faire svp ?

En vous remerciant.
 
- 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
3
Affichages
232
Retour