IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Passer heures minutes en heures centièmes même si négatives [XL-2010]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Derrière l'écran
    Inscrit en
    Novembre 2012
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Derrière l'écran

    Informations forums :
    Inscription : Novembre 2012
    Messages : 163
    Par défaut 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 : 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 :
    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
    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
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VxiR2] Transformer heures décimales en heures minutes
    Par nat54 dans le forum Deski
    Réponses: 4
    Dernier message: 18/02/2010, 08h29
  2. Réponses: 1
    Dernier message: 30/09/2008, 20h40
  3. Script pour transformer minutes en heures-minutes
    Par rgdu86 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/06/2008, 11h27
  4. Formatage heures decimale en heures minutes
    Par FlyByck dans le forum Requêtes
    Réponses: 5
    Dernier message: 14/01/2008, 21h13
  5. Conversion heures minutes en heures centièmes
    Par shaman262 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 24/10/2005, 17h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo