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
| Sub Transfert()
Dim LastLig As Long, i As Long, j As Long
Dim idAgent As String
Dim P As Double
Dim Tb, Res()
Application.ScreenUpdating = False
P = 1 / 72 '1/72=20minutes/24heures
'-Transfert et réorgnaisation des données dans la variable Tb à partir de la feuille Source 'adapter le nom de la feuille
With Worksheets("Source")
LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
Tb = .Range("A4:AO" & LastLig)
For i = UBound(Tb, 1) To 2 Step -1
If Tb(i - 1, 41) <> idAgent Then
idAgent = Tb(i - 1, 41)
Else
If Tb(i - 1, 6) < Tb(i - 1, 4) + P Or Tb(i - 1, 6) > Tb(i, 4) - P Then
Tb(i - 1, 6) = Tb(i, 6)
Tb(i, 1) = ""
End If
End If
Next i
End With
'-Remplissage de la variable Res à partir de Tb
idAgent = ""
For i = 1 To UBound(Tb, 1)
If Tb(i, 1) <> "" Then
If Tb(i, 41) <> idAgent Then
j = j + 1
ReDim Preserve Res(1 To 6, 1 To j)
Res(1, j) = Tb(i, 1)
Res(2, j) = Tb(i, 4)
Res(3, j) = Tb(i, 6)
idAgent = Tb(i, 41)
Res(6, j) = idAgent
Else
Res(4, j) = Tb(i, 4)
Res(5, j) = Tb(i, 6)
End If
End If
Next i
'Transfert du resultat final à partir de la variable Res vers la feuille Destination 'adapter le nom de la feuille
If j > 1 Then Worksheets("Destination").Range("A2").Resize(j, 6) = Application.Transpose(Res)
End Sub |
Partager