1 pièce(s) jointe(s)
Passer heures minutes en heures centièmes même si négatives
Bonsoir à tous,
je bute sur un problème de conversion de données en heures minutes vers des heures centièmes avec un signe "-"
dans une seule colonne F, je peux avoir des données brutes en heures minutes positives ou négatives :
12 donne 00:12:00 => 00h12
1025 donne 10:25:00 => 10h25
8754 donne 87:54:00 => 87h54
-123 donne -01:23:00 => -01h23
-2141 donne -21:41:00 => -21h41
Dans Excel je n'ai pas appliqué le calendrier à partir de 1904
J'ai des milliers de données à traiter en ligne (tantôt positives, tantôt négatives)
Dans 3 autres colonnes je n'ai que des heures positives.
J'arrive à faire ma boucle sans problème (boucle sur des milliers de lignes et 3 colonnes) elle tourne avec un bon résultat attendu :
Code:
1 2 3 4 5 6 7
| ligne = Cells.End(xlDown).Row
For j = 7 To 9
For i = 2 To ligne
Cells(i, j) = Int(Cells(i, j) / 100) & ":" & Right(Cells(i, j).Value, 2)
Cells(i, j) = Round((Cells(i, j) * 24), 2)
Next i
Next j |
Pour ma colonne F, ma boucle ne veut pas tourner elle se bloque uniquement pour les données négatives :
Code:
1 2 3 4 5 6 7 8 9
| For i = 2 To ligne
If Left(Cells(i, 6).Value, 1) = "-" Then
Cells(i, 6) = Int(Abs(Cells(i, 6) / 100)) & ":" & Right(Cells(i, 6).Value, 2)
Cells(i, 6) = Round((Cells(i, 6) * 24), 2)
Else
Cells(i, 6) = Int(Cells(i, 6) / 100) & ":" & Right(Cells(i, 6).Value, 2)
Cells(i, 6) = Round((Cells(i, 6) * 24), 2)
End If
Next i |
Si je désactive ma ligne verte le résultat calculé (pas bon mais c'est ma 1ère étape) se fait sans soucis.
Il y a donc un problème à partir de la ligne verte
Je joins un fichier Excel pour expliquer ce que je souhaite en VBA
en fait je prend une valeur absolue de mon calcul et après pour l'avoir en négatives (en heures centièmes) je fais simplement =0-calcul
Je vois pas ou cela bute pour régler mon problème.
Merci de votre aide