Salut juspe et
à tester
Sub transfert()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
ActiveCell.Select 'enlève le focus au bouton
Set OS = Worksheets("Feuil1") 'définit l'onglet source OS
Set OD = Worksheets("Feuil2") 'définit l'onglet destination OD
If MsgBox("Etes-vous certain de vouloir transférer les lignes validées ?", vbYesNo, "Demande de confirmation") = vbYes Then
For Each CEL In OS.Range("M3:M" & OS.Cells(Application.Rows.Count, 13).End(xlUp).Row) 'boucle sur toutes les cellules de la colonne M
If CEL.Value = "Validé" Then 'condition : si la cellule CEL vaut "Validé"
Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0) 'définit la cellule de destination DEST
OS.Cells(CEL.Row, 1).Copy DEST 'copie le N°de fiche
OS.Cells(CEL.Row, 2).Copy DEST.Offset(0, 1) 'copie l'année
OS.Cells(CEL.Row, 3).Copy DEST.Offset(0, 2) 'copie le N° Sem
OS.Cells(CEL.Row, 4).Copy DEST.Offset(0, 3) 'copie le N° de page
OS.Cells(CEL.Row, 5).Copy DEST.Offset(0, 4) 'copie le CU
OS.Cells(CEL.Row, 6).Copy DEST.Offset(0, 5) 'copie l'opérateur
OS.Cells(CEL.Row, 7).Copy DEST.Offset(0, 6) 'copie la localisation
OS.Cells(CEL.Row, 8).Copy DEST.Offset(0, 7) 'copie le point maintenance
OS.Cells(CEL.Row, 9).Copy DEST.Offset(0, 8) 'copie la Pris en compte
OS.Cells(CEL.Row, 10).Copy DEST.Offset(0, 9) 'copie le N° Tache Planning
OS.Cells(CEL.Row, 11).Copy DEST.Offset(0, 10) 'copie le Commentaire maintenance
OS.Cells(CEL.Row, 12).Copy DEST.Offset(0, 11) 'copie le Délai
CEL.EntireRow.Delete
End If 'fin de la condition
Next CEL
MsgBox "Fin du transfert !"
End If
End Sub
Bonne journée