Combiner 2 feuille excel selon la colonne C

matrix

XLDnaute Occasionnel
Bonjour à tous,

Je voudrais faire une macro qui combinerait 2 feuilles d'un même fichier Excel en prenant en considération de la colonne C de chaque feuille.

Exemple, si dans la feuille "HEADER", colonne C, tu as le chiffre 21, et que dans la feuille "DETAIL" aussi, tu as dans la colonne C le chiffre 21, dans la feuille "Compilation", il copiera la ligne de la valeur 21 de la feuille "HEADER" et ensuite, copiera juste en dessous la ligne de la valeur 21 de la feuille "DETAIL".

Ensuite, il passe au prochain jusqu'a la fin de la liste.

Comment faire s.v.p?

J'ai joint un fichier avec une partie du résultat dans la feuille compilation.

Merci pour votre aide
 

Pièces jointes

  • testcombo.xls
    35 KB · Affichages: 76
  • testcombo.xls
    35 KB · Affichages: 82
  • testcombo.xls
    35 KB · Affichages: 78

vbacrumble

XLDnaute Accro
Re : Combiner 2 feuille excel selon la colonne C

Bonsoir


Un début solution (car ne fonctionne qu'avec ton fichier exemple)

Code:
Sub macro()
Dim F1 As Worksheet, F2 As Worksheet
Dim PF1 As Range, PF2 As Range
Set F1 = Sheets("HEADER"): Set F2 = Sheets("DETAIL")
Set PF1 = F1.Range("C2:C" & [C65536].End(xlUp).Row)
Set PF2 = F2.Range("C2:C" & [C65536].End(xlUp).Row)
Application.ScreenUpdating = False
For i = 2 To PF1.Rows.Count
If F1.Cells(i, "C") = F2.Cells(i, "C") Then
With F1.Rows(F1.Cells(i, "C").Row)
.Copy
Sheets("Compilation").[A65536].End(xlUp).Offset(1, 0).PasteSpecial xlValues
End With
With F2.Rows(F2.Cells(i, "C").Row)
.Copy
Sheets("Compilation").[A65536].End(xlUp).Offset(1, 0).PasteSpecial xlValues
End With
End If
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Réponses
22
Affichages
944

Statistiques des forums

Discussions
312 844
Messages
2 092 762
Membres
105 529
dernier inscrit
StarExcel