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 :

Conversion minutes en heures [VBA]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Par défaut Conversion minutes en heures [VBA]
    Bonjour,

    J'ai un programme que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        Private Sub Worksheet_Change(ByVal Target As Range) 
        If Target.Column = 4 Then
        'Ecris lheure actuelle dans la colonne D apres avoir scanner le START
            Cells(Target.Row, 4).Value = Time()
        End If
     
        If Target.Column = 5 Then
        'Ecris lheure actuelle dans la colonne E apres avoir scanner le END
            Cells(Target.Row, 5).Value = Time()
        End If
     
        If Not Application.Intersect(Target, Range("E:E")) Is Nothing Then
        'Permet la soustraction des heures du debut et de fin
            Target.Offset(0, 1) = Format(Target.Offset(0, -1).Value - Target.Value, "hh:mm:ss")
        End If
        End Sub
    Et je souhaiterai que quand il fait la soustraction des deux heures du début et de fin il m'affiche le résultat en heure (30 minutes = 0.5 heure)
    Pouvez-vous m'aider svp ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2018
    Messages : 4
    Par défaut
    Bonjour à toi,

    Si j'ai bien compris tu veux juste au lieu de minute avoir les heures mais avec un format du genre 1h45min ou juste 1,75h ?

    Si c'est juste 1,75h essaye ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Target.Offset(0, 1).Value = Target.Offset.Value / 60
    A la fin de ton code après la soustraction

    Sinon pour avoir un format 1h45min tu dois avoir un paramètre dans ta fonction Time()

    Cdt

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Remplace ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Target.Offset(0, 1) = Format(Target.Offset(0, -1).Value - Target.Value, "hh:mm:ss")
    Par ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Target.Offset(0, 1).Value = Target.Offset(0, -1).Value - Target.Value
    Target.Offset(0, 1).NumberFormat =  "[mm]"
    Non seulement ça te permettra d'obtenir le résultat souhaité mais au moins tu garderas une donnée numérique que tu pourras éventuellement traiter.

  4. #4
    Membre confirmé Avatar de pite0611
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 62
    Par défaut
    Bonjour,
    J'ai résolu mon problème autrement et cela fait ce que je demande et empêche le crash de excel
    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Column = 4 Then
            'Ecris lheure actuelle dans la colonne D apres avoir scanner le START
            Application.EnableEvents = False
            Target.Value = Time()
            Target.NumberFormat = "hh:mm:ss"
            Application.EnableEvents = True
        End If
     
        If Target.Column = 5 Then
            'Ecris lheure actuelle dans la colonne E apres avoir scanner le END
            Application.EnableEvents = False
            Target.Value = Time()
            Target.NumberFormat = "hh:mm:ss"
            Target.Offset(0, 1) = 24 * (Target.Value - Target.Offset(0, -1).Value)
            Target.Offset(0, 1).NumberFormat = "0.00"
            Application.EnableEvents = True
        End If
     
    End Sub

Discussions similaires

  1. Exercice conversion (Minute en heure)
    Par Maeva2 dans le forum C++
    Réponses: 1
    Dernier message: 22/04/2013, 11h41
  2. Conversion Minutes en Heure Centieme
    Par tomanu dans le forum SQL
    Réponses: 2
    Dernier message: 11/10/2010, 17h24
  3. Conversion minutes vers Jour:Heure:minute
    Par jaq dans le forum VBA Access
    Réponses: 10
    Dernier message: 24/09/2009, 17h01
  4. 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