Sub Macro1()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim CH As String 'déclare la variable CH (Chemin d'accès)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable CS (Onglet Source)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim I As Integer 'déclare la variable I (Incrément)
Application.ScreenUpdating = False 'masque les raffraîchissements d'écran
Set CD = ThisWorkbook 'définit le classeur destination CD
CH = CS.Path & "\" 'définit le chemin d'accès CH
Set OD = CD.Worksheets("MO 2") 'définit l'onglet destination OD
Set CS = Workbooks.Open(CH & "ven 1.xlsx") 'ouvre le classeur "ven 1.xlsx"
Set OS = CS.Worksheets("MO 1") 'définit l'onglet source OS
DL = OS.Range("Q" & Application.Rows.Count).End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne Q de l'onglet source OS
For I = 13 To DL 'boucle sur les lignes 13 à DL
'si la cellule ligne I, colonne 17 (=Q) de l'onglet OS n'est pas vide et si il a la couleur vert ou jaune
If OS.Cells(I, 17).Value <> "" And OS.Cells(I, 17).Interior.Color = 65535 Or OS.Cells(I, 17).Interior.Color = 11073710 Then
'récupère dans la cellule ligne I, colonne 17 (=Q) de l'onglet OD, la valeur de la cellule ligne I, colonne 17 (=Q) de l'onglet OS
OD.Cells(I, 17).Value = OS.Cells(I, 17).Value
OS.Cells(I, 17).Value = "" 'efface la donnée source
End If 'fin de la condition
Next I 'prochaine ligne de la boucle
CS.Close True 'ferme le classeur source en enregistrant les modifications
CD.Save 'enregistre le classeur destination
Application.ScreenUpdating = True 'affiche les raffraîchissements d'écran
End Sub