Bonjour,
ma feuille 1 changeras souvent, Qu'est-ce qui changera souvent, la quantité de données, la structure de la feuille?
En partant du principe que la structure des feuilles peut varier, voici le code modifié, le principe: on recopie l'ensemble des données dans la feuille 2 puis on supprime les doublons.
Sub copier_coller()
Dim f1 As Worksheet, f2 As Worksheet
Dim DerLig_f1 As Long, DerLig_f2 As Long, DerCol_f2 As Long, i As Long
Dim x As Range
Dim intitule As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'identifier les onglets
Set f1 = Worksheets(1)
Set f2 = Worksheets(2)
'identifier la dernière ligne des données de chaque feuille
DerLig_f1 = f1.Cells(Rows.Count, 1).End(xlUp).Row
DerLig_f2 = f2.Cells(Rows.Count, 1).End(xlUp).Row
DerCol_f2 = f2.Cells(1, "A").End(xlToRight).Column
'Recopie des données de la feuille 1 vers la feuille 2
For i = 1 To DerCol_f2
intitule = f2.Cells(1, i)
'recherche de l'intitulé dans la feuille 1
With f1.Rows(1)
Set x = .Find(intitule, lookat:=xlWhole)
If Not x Is Nothing Then Range(f1.Cells(2, x.Column), f1.Cells(DerLig_f1, x.Column)).Copy f2.Cells(DerLig_f2 + 1, i) 'copie les données
End With
Next i
'suppession des lignes contenant les matricules en double dans la feuille 2
DerLig_f2 = f2.Cells(Rows.Count, 1).End(xlUp).Row 'identifier la nouvelle dernière ligne de la feuille 2
f2.Range("A1:D" & DerLig_f2).RemoveDuplicates Columns:=Array(2), Header:=xlYes 'suppression des doublons
End Sub
Cdlt