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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Si je désactive ma ligne verte le résultat calculé (pas bon mais c'est ma 1ère étape) se fait sans soucis.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager