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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| Private AutreCommentaires()
Dim Fichier As String, Chemin As String
Dim i As Integer, j As Integer, NbLigne As Integer, NumC2 As Integer, NumC3 As Integer, NumC4 As Integer
Dim Trouver As Boolean
Dim Wb1 As Workbook, Wb2 As Workbook
Dim Ws1 As Worksheet, Ws2 As Worksheet
'Pour l'onglet closed
Application.ScreenUpdating = False
'Nouveau fichier issu de la mise à jour
Set Wb1 = Workbooks("Restitutions.xls")
Set Ws1 = Wb1.Worksheets("Closed")
'Ancien fichier où se trouvent les commentaires
Fichier = TextBox1.Text
Chemin = ThisWorkbook.Path
Set Wb2 = Workbooks.Open(Chemin & "\" & Fichier)
Set Ws2 = Wb2.Worksheets("Closed")
Ws1.Activate
'Nombre de lignes dans l'ancien fichier
NbLigne = Ws2.Cells(1, 1).CurrentRegion.Rows.Count
'On balaye toutes les lignes de l'ancien fichier
For i = 2 To NbLigne
'On copie les commentaires
Ws2.Cells(i, 18).Copy
Ws2.Cells(i, 19).Copy
Ws2.Cells(i, 20).Copy
'On relève l'identifiant de la ligne où doit se trouver les commentaires
NumC2 = Ws2.Cells(i, 1)
Trouver = True
j = 2
NumC3 = Ws2.Cells(i, 1)
Trouver = True
j = 2
NumC4 = Ws2.Cells(i, 1)
Trouver = True
j = 2
'Si le commentaire existe
If IsEmpty(Ws2.Cells(i, 18)) = False Then
If IsEmpty(Ws2.Cells(i, 19)) = False Then
If IsEmpty(Ws2.Cells(i, 20)) = False Then
'On balaye toutes les lignes du nouveau fichier afin de trouver le même identifiant
While Trouver And j < NbLigne + 1
'Si le même identifiant est trouvé, on copie le commentaire
If Ws1.Cells(j, 1).Value = NumC2 Then
Ws1.Paste Destination:=Ws1.Cells(j, 18)
Trouver = False
Else
j = j + 1
End If
If Ws1.Cells(j, 1).Value = NumC3 Then
Ws1.Paste Destination:=Ws1.Cells(j, 19)
Trouver = False
Else
j = j + 1
End If
If Ws1.Cells(j, 1).Value = NumC4 Then
Ws1.Paste Destination:=Ws1.Cells(j, 20)
Trouver = False
Else
j = j + 1
End If
Wend
End If
End If
End If
Next i
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub |
Partager