Re : Transferer quelques lignes d'une feuille dans une autre feuille en comparant deu
En fait j'ai utilisé une partie de ton code et je l'ai adapté au mien
Private Sub Worksheet_Activate()
Dim trouve As Range, quoi$
Feuil54.Cells.Delete 'j'efface la feuille transfere
With Feuil50 'Déclaration implicite de l'objet feuil1
lig = 2
Feuil54.Cells(1, 1) = "Intervention": Feuil54.Cells(1, 2) = "Conclusion": Feuil54.Cells(1, 3) = "Code": Feuil54.Cells(1, 4) = "Genre_Intervention": Feuil54.Cells(1, 5) = "Statut": Feuil54.Cells(1, 6) = "Date_début": Feuil54.Cells(1, 7) = "Date_fin": Feuil54.Cells(1, 8) = "Code_Inspecteur": Feuil54.Cells(1, 9) = "Anomalie": Feuil54.Cells(1, 10) = "Numero_demande": Feuil54.Cells(1, 11) = "Date_Creation_Demande": Feuil54.Cells(1, 12) = "Nom_Inspecteur": Feuil54.Cells(1, 13) = "Prenom_Inspecteur": Feuil54.Cells(1, 14) = "Domaine_Intervention"
Feuil54.Rows(1).Font.Bold = True
For i = 2 To .UsedRange.Rows.Count 'traitement de la ligne 2 à la dernière ligne non vide
Z = .Cells(i, 12) & Chr(32) & .Cells(i, 13) 'dans la variable z j'écris le nom et prénom séparé par un espace
Set trouve = Feuil53.Columns(3).Find(Z, lookat:=xlWhole) 'j'indique de rechercher la valeur de z dans la colonne 2
If Not trouve Is Nothing Then 'si un résultat est trouvé
'Feuil54.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 14) = .Cells(i, 1).Resize(1, 14).Value 'sur ma feuil3 je rajoute à chaque nouvelle ligne vide le contenu des trois colonnes (a b c) de la ligne i
Feuil54.Cells(lig, 1) = Feuil50.Cells(i, 1): Feuil54.Cells(lig, 2) = Feuil50.Cells(i, 2): Feuil54.Cells(lig, 3) = Feuil50.Cells(i, 3): Feuil54.Cells(lig, 4) = Feuil50.Cells(i, 4): Feuil54.Cells(lig, 5) = Feuil50.Cells(i, 5): Feuil54.Cells(lig, 6) = Feuil50.Cells(i, 6): Feuil54.Cells(lig, 7) = Feuil50.Cells(i, 7): Feuil54.Cells(lig, 8) = Feuil50.Cells(i, 8): Feuil54.Cells(lig, 9) = Feuil50.Cells(i, 9): Feuil54.Cells(lig, 10) = Feuil50.Cells(i, 10): Feuil54.Cells(lig, 11) = Feuil50.Cells(i, 11): Feuil54.Cells(lig, 12) = Feuil50.Cells(i, 12): Feuil54.Cells(lig, 13) = Feuil50.Cells(i, 13): Feuil54.Cells(lig, 14) = Feuil50.Cells(i, 14)
lig = lig + 1
End If 'fin de ma condition
Next i 'je cherche la ligne suivante de la feuil1 et je répète jusqu'à la dernière ligne non vide
'une fois la boucle terminée
End With 'je cloture la déclaration implicite
With Feuil54
.Activate
'.UsedRange.RemoveDuplicates Array(1, 3), xlNo 'je supprime les doublons s'il y en a
.Columns("A:Y").AutoFit: .Range("A1").CurrentRegion.Borders.LineStyle = 1 'J'ajuste mes colonnes en tailles
End With
End Sub