Remplir automatiquement toutes les références dans lesquelles on retrouve un nom

Bonjour docteur,
Je dispose de 2 tableaux comme vous pouvez le voir dans le fichier attaché.
J’aimerais pouvoir remplir automatiquement toutes les références dans lesquelles on retrouve un nom.
Merci de m’aider.

K. Raymond APETSE

EXCEL.xlsx (11.3 KB)

Bonjour,
Le classeur exemple est-il le classeur final, ou sera t’il extensible?
le tableau des résultats est-il sur la même feuille?

Bonjour Raymondo,
De quelle référence parle-tu? Celle comme B2 , C4 ou d’autres choses?
Cordialement

Bonjour Daiel,
Non, je parle plutôt des références de la colonne « Référence » du tableau 1 dans le fichier attaché.
Il s’agit de A1 , A2, A3 et A4.
Merci

K. Raymond APETSE

Re,
Ayant posé une question sans réponse, un test sans plus d’explication
Raymondo.xlsm (20,7 Ko)

Bonjour,
Le tableau des résultats est sur la même feuille

@mimimathy
Désolé pour le retard. J’étais en circulation. Oui le résultat sera sur la même feuille.

Re,
Tu as un exemple test dans mon dernier message.
Celui-ci est il à votre convenance?

Oui mais si tu pourrais m’expliquer un peu le processus pour les avoir
automatiquement.

Re,
C’est une macro (établi avec l’enregistreur de macro et améliorée)

Sub Macro1()
    Application.ScreenUpdating = False 'Déactive le rafraichissement d'écran
    Feuil1.Range("B8:G11").ClearContents 'Efface les anciennes données
    Sheets.Add After:=ActiveSheet 'Ajoute une nouvelle feuille
    ActiveSheet.Name = "TEMP" 'renomme la nelle feuille TEMP
    Range("A1:D7").Select 'Sélection de la plage A2 à D7 sur la Nelle feuille
    Selection.FormulaArray = "=TRANSPOSE(Feuil1!R[1]C:R[4]C[6])" 'Transpose les données de la feuille1 (A2:G5) de ligne en colonne
    Sheets("Feuil1").Activate 'Active la feuil1
    Range("B8:G11").Select 'Sélectrion de la plage pour recevoir les formules
    Selection.FormulaR1C1 = _
        "=IF(COUNTIF(TEMP!R2C[-1]:R7C[-1],Feuil1!RC1)=1,TEMP!R1C[-1],""-"")" 'applique les formules
    Range("B8:G11").Select
    Selection.Copy 'Sélectionne les données avec les formules
    Range("B8").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False 'Colle les données en valeurs (sans les formules)
    Application.CutCopyMode = False 'Déactive la sélection
    Range("B8").Select
    Application.DisplayAlerts = False 'Désactive les alertes
    Sheets("TEMP").Delete 'Supprime la feuille TEMP
    Application.DisplayAlerts = True 'Résactive les alertes
End Sub

Raymondo.xlsm (21,1 Ko)

Oui, cela me convient.
Puis je avoir une explication sur le processus ?
Merci.

Re,
Le processus, il est écrit en commentaire dans la macro.
Bref
J’efface les données qui sont dans le tableau qui récupère les données (Cela permet de pouvoir mettre d’autre noms)
Je créé un Nelle feuille que je nomme TEMP
Sur cette feuille, je copie les données de la feuille 1 en les transposant (les lignes deviennent des colonnes)
ensuite, j’applique une formule =SI(NB.SI(TEMP!A$2:A$7;Feuil1!$A8)=1;TEMP!A$1;"-") sur toute la plage à remplir .
Comme je veux supprimer la feuille TEMP, je copie les valeurs trouvées qui sont en formules pour les copier en valeur

Merci beaucoup.

Re,
Si le problème est résolu, n’oublie pas de passer le post en résolu :wink: