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 Calcul_Durée_Tache()
Dim Calc As Worksheet
Dim Tr As Range
Dim i As Integer
Dim j As Integer
Dim NbLigne As Integer
Dim NbCol As Integer
Dim Reste(1) As String
Set Calc = ThisWorkbook.Sheets("Feuil1")
Set Tr = Calc.Range("A1")
Tr = Tr.Offset(0)
With Sheets("Feuil1")
NbLigne = .Cells(.Rows.Count, 1).End(xlUp).Row - 1 ' On compte le nombre de tronçons présents en colonne A
End With
For i = 2 To NbLigne
Tr.Offset(i, 7).ClearContents ' ici on effece les données précédement calculées
Next i
For i = 2 To NbLigne 'Pour chaque tronçon
For j = 1 To 4
Tr.Offset(i, j).Select
If Tr.Offset(i, j) <> "" Then
If Tr.Offset(0, j) Like "*km*" Then
Tr.Offset(i, 7) = Tr.Offset(i, 7) + (Tr.Offset(i, j) * Tr.Offset(1, j) / 1000) ' Calcul en minutes pour des données en km
Else
Tr.Offset(i, 7) = Tr.Offset(i, 7) + (Tr.Offset(i, j) * 30) 'Calcul en minutes pour les Folios par exemple
End If
End If
Next j
If Tr.Offset(i, 7) > 60 Then ' mise au format 00h00
Reste(0) = Tr.Offset(i, 7)
Tr.Offset(i, 7) = (Int(Tr.Offset(i, 7) / 60)) & "h" & (Reste(0) - (Int(Tr.Offset(i, 7) / 60) * 60))
Reste(1) = (Reste(0) - (Int(Reste(0) / 60) * 60))
If Reste(1) < 10 Then
Tr.Offset(i, 7) = (Int(Reste(0) / 60)) & "h0" & Reste(1)
End If
End If
Next i
End Sub |
Partager