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.
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
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
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