1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| Sub Merge()
If Not Range("t_Résultat").ListObject.DataBodyRange Is Nothing Then Range("t_Résultat").ListObject.DataBodyRange.Delete
' Création de la plage des références
Range("t_Résultat[Référence]").Resize(Range("t_Désignations").Rows.Count).Value = _
Range("t_Désignations[Dénomination]").Value
Range("t_Résultat[Référence]")(Range("t_Résultat").Rows.Count + 1).Resize(Range("t_Matières").Rows.Count).Value = _
Range("t_Matières[Référence]").Value
Range("t_Résultat[Référence]")(Range("t_Résultat").Rows.Count + 1).Resize(Range("t_Fournisseurs").Rows.Count).Value = _
Range("t_Fournisseurs[Référence]").Value
' Suppression des doublons
Range("t_Résultat").RemoveDuplicates Columns:=Range("t_Résultat").ListObject.ListColumns("Référence").Index, Header:=xlYes
' Ajout des formules
Range("t_Résultat[Désignation]").Formula = _
"=IFERROR(INDEX(t_Désignations[Désignation],MATCH([@Référence],t_Désignations[Dénomination],0)),"""")"
Range("t_Résultat[Matière]").Formula = _
"=IFERROR(INDEX(t_Matières[Matière],MATCH([@Référence],t_Matières[Référence],0)),"""")"
Range("t_Résultat[Finition]").Formula = _
"=IFERROR(INDEX(t_Matières[Finition],MATCH([@Référence],t_Matières[Référence],0)),"""")"
Range("t_Résultat[Fournisseur]").Formula = _
"=IFERROR(INDEX(t_Fournisseurs[Fournisseur],MATCH([@Référence],t_Fournisseurs[Référence],0)),"""")"
' Collage spécial valeur sauce VBA optionnel
Range("t_Résultat[[Désignation]:[fournisseur]]").Value = _
Range("t_Résultat[[Désignation]:[fournisseur]]").Value
End Sub |
Partager