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 :

soustraction d'heures excel


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Par défaut soustraction d'heures excel
    Bonjour a tous,

    Voici ce que je voudrai faire avec ce fichier.
    Dans la colonne C, nous avons l’heure d’ouverture. Dans la colonne D, ce trouve l’heure de fermeture.

    Maintenant, je voudrais que dans la colonne E, qu’il calcule le nombre d’heures entre l’heure d’ouverture et l’heure de fermeture.

    Ensuite, dans la colonne F, qu’il me calcule l’heure de la colonne E divisée par 2 et ensuite qu’il additionne la réponse a l’heure de la colonne C.

    Finalement, dans la colonne G, qu’il calcule calcule l’heure de la colonne E divisé par 2 et ensuite et la réponse doit êtres inscrite en minutes et non en heure.
    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1 :00 égale 60; 2 :00 égale 120 et, ainsi de suite
    .

    Si c’est possible en macro au lieu de formule, ça serait apprécié, car mon fichier est énorme ce qui ralentiré tout.

    P.-S. Je vous envoie un échantillon du fichier à la ligne 2, vous avez le résultat final et sur la ligne 4, vous avez l’explication complète.

    Merci pour votre aide.

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir,

    Si j'ai bien compris, et si SH est ton objet feuille
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'colonne E
    sh.Range("En") = sh.range("Dn") -Sh.Range("Cn") 
    'colonne F
    sh.Range("Fn") = (sh.range("Dn") +Sh.Range("Cn") )/2
    'colonne G
    sh.Range("Gn") = DateDiff("n", SH.Range("Cn"), SH.Range("Dn")) / 2
    C, D, E et F contiennent des valeurs de type DateHeure et ont pour format "hh:mm"
    G est de type réel, le format décide du nombre de décimales.

    Cordialement,

    PGZ

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Par défaut
    Bonjour pgz,

    Avec se code, j'ai l'erreur: Run time erreur 424
    object required

    Quest-ce que ça veut dire?

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonsoir,
    essaye çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
    Dim x As Integer
    Range("G3:g" & Range("c10000").End(xlUp).Row).NumberFormat = "[mm]" 'format de la colonne G
    For x = 3 To Range("c10000").End(xlUp).Row
    If Range("d" & x) > Range("c" & x) Then
    Range("e" & x) = Range("d" & x) - Range("c" & x)
    Else
    Range("e" & x) = (24 - Range("c" & x)) + Range("d" & x)
    End If
    Range("f" & x) = Range("c" & x) + (Range("e" & x) / 2)
    Range("g" & x) = Range("e" & x) / 2
    Next x
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    j'ai revu certains trucs :
    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
    Private Sub CommandButton1_Click()
    Dim x As Integer
    Range("G3:g" & Range("c10000").End(xlUp).Row).NumberFormat = "[mm]" 'format de la colonne G
    For x = 3 To Range("c10000").End(xlUp).Row
    Range("e3:e" & Range("c10000").End(xlUp).Row).NumberFormat = "hh:mm" 'format de la colonne e
     
    If Range("d" & x) > Range("c" & x) Then
    Range("e" & x) = Range("d" & x) - Range("c" & x)
    Else
    Range("e" & x) = Format((24 - Range("c" & x)) + Range("d" & x), "hh:mm:ss") 'j'ai corrigé
    End If
    Range("f" & x) = Format(Range("c" & x) + (Range("e" & x)) / 2, "hh:mm:ss") 'j'ai corrigé
    Range("g" & x) = Range("e" & x) / 2
    Next x
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 89
    Par défaut
    Un très grand merci casefayere, ça fonctionne no1.

    Mon fichier sera ultra léger avec cette macro.

    Merci aussi à pgz.

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

Discussions similaires

  1. soustraction d'heures dans un formulaire
    Par patmar83 dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/06/2008, 13h17
  2. calcul heures excel
    Par jo50160 dans le forum Excel
    Réponses: 4
    Dernier message: 03/11/2007, 20h43
  3. soustraction d'heures dans cellules non consécutives
    Par kikinou91 dans le forum Excel
    Réponses: 4
    Dernier message: 03/08/2007, 14h40
  4. calcul d'heure [excel]
    Par lumbroso dans le forum Excel
    Réponses: 24
    Dernier message: 18/06/2007, 15h50
  5. [PERL] Soustraction d'heure
    Par LE NEINDRE dans le forum Langage
    Réponses: 6
    Dernier message: 22/09/2005, 17h09

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