1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Sub maccro()
'Définition des variables
Dim i As Long, j As Long, k As Long, wk0 As Workbook, wk1 As Workbook
'Permet de ne pas afficher le message de fermeture de fichier
Application.DisplayAlerts = False
On Error Resume Next 'Ouverture de la gestion de problème
Workbooks.Open "C:\Doc1.xls"
If Err <> 0 Then
MsgBox ("Le fichier C:\Doc1.xls n'existe pas")
Exit Sub 'Affichage d'un message d'erreur si le fichier n'existe pas
End If
On Error GoTo 0 'Fermeture de la gestion de problème
Set wk0 = ActiveWorkbook
Set wk1 = ThisWorkbook
j = 2
While wk0.Worksheets("Doc1_Feuille1").Cells(j, 1) <> ""
On Error Resume Next
i = WorksheetFunction.Match(wk0.Worksheets("Doc1_Feuille1").Cells(j, 1).Value, wk1.Worksheets("Doc2_Feuille1").Columns(1), 0) 'Comparaison de la valeur des colonnes A des différentes feuilles
If Err Then i = 0
On Error GoTo 0
If i <> 0 Then
wk1.Worksheets("Doc2_Feuille1").Rows(i).Interior.Color = RGB(153, 204, 0) 'Remplissage en vert de la ligne
wk1.Worksheets("Doc2_Feuille1").Rows(i).Cut 'On coupe la ligne qui a passé le test de comparaison
With wk1.Worksheets("Doc2_Feuille2")
With .UsedRange: k = .Row + .Rows.Count
.Rows(k).Insert 'On insert la ligne dans la feuille " Doc2_Feuille2"
End With
End With
wk1.Worksheets("Doc2_Feuille1").Rows(i).Delete 'On supprime la ligne qu'on a déplacé et qui est maintenant vide
End If
j = j + 1 'On passe au traitement de la ligne suivante dans la feuille " Doc1_Feuille1" de Doc1
Wend
wk0.Close
'Affichage de la date de dernière mise à jour dans la 1ère case de la feuille Doc2_Feuille1
wk1.Worksheets("Doc2_Feuille1").Cells(1, 1) = " Mis à jour le " + Format(Date, "dd-mm-yyyy") + " à " + Format(Time, "hh:mm")
End Sub |
Partager