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 :

Calculer des heures, minutes en vba [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut Calculer des heures, minutes en vba
    bonjour a tous,

    J'ai des cellules avec des valeurs tel que :
    06:15
    04:23
    etc...

    Dans mon code ci-dessous:
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Sub FillRosterSA()
    Dim sht, targetsht As Worksheet
    rotaNLAM = 3
    rotaNLPM = 8
     
     
    For j = 2 To LastRow
        'Saturday
            If Right(sht.Cells(j, 6).Value, 1) = "A" Then
                'AM
                If sht.Cells(j, 3).Value <= sht.Cells(4, 1).Value Then
                        targetsht.Cells(rotaNLAM + 1, 10).Value = sht.Cells(j, 3).Value
                        targetsht.Cells(rotaNLAM + 2, 10).Value = sht.Cells(j, 4).Value
                        twelvehourscond = targetsht.Cells(rotaNLAM + 1, 10).Value
                        fortyminCond = targetsht.Cells(rotaNLAM + 2, 10).Value
                        rotaNLAM = rotaNLAM + 11
     
                End If
     
                'PM
                If sht.Cells(j, 3).Value - fortyminCond > sht.Cells(3, 1).Value And sht.Cells(j, 4).Value - twelvehourscond <= sht.Cells(5, 1).Value Then
                        targetsht.Cells(rotaNLPM, 10).Value = sht.Cells(j, 12).Value
                        rotaNLPM = rotaNLPM + 11
     
                End If
     
     
            End If
        Next
     
    End Sub
    dans mon dernier IF, j<essaie de voir si la difference entre de cellules est superieur 40min, alors execute le IF. Le probleme c'est qu'il l'execute peu importe meme si la difference est inferieur a 40min.
    Dans ma cellule sht.Cells(3, 1).Value , il y a la valeur 00:40. On dirait qu'il ne fait pas la soustraction correctement. Est ce une question de format ?

    merci de votre aide

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,

    Peut-être en forçant le type de donnée en Double
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If CDbl(sht.Cells(j, 3).Value) - CDbl(fortyminCond) > CDbl(sht.Cells(3, 1).Value) And CDbl(sht.Cells(j, 4).Value) - CDbl(twelvehourscond) <= CDbl(sht.Cells(5, 1).Value) Then

  3. #3
    Membre Expert
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Par défaut
    Bonjour,

    Vous avez des fonctions natives VBA qui pourraient grandement vous simplifier la vie je pense et votre code par la même occasion, en particulier:

    1. TimeValue: vous permet d'extraire et de tester si une valeur est bien un temps, quel que soit le format
    2. DateDiff: permet de faire une différence entre deux dates / temps, en secondes, minutes, heures, jours, ....
    3. DatePart

    Note: la représentation des dates / temps entre Excel et VBA est complètement différentes

    Si ça peut vous aider

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    merci enormement a vous deux - probleme resolu

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

Discussions similaires

  1. [Table Paradox] Calculer des heures
    Par pierrot67 dans le forum Bases de données
    Réponses: 1
    Dernier message: 26/04/2007, 12h37
  2. [Expression]calculer des heures et euros
    Par isodoro dans le forum VBA Access
    Réponses: 8
    Dernier message: 03/04/2007, 14h47
  3. Comment calculer des heures sur access
    Par chakib47 dans le forum Access
    Réponses: 2
    Dernier message: 09/03/2007, 13h38
  4. calcul des heures
    Par meddeb2001 dans le forum Access
    Réponses: 2
    Dernier message: 06/07/2006, 17h55
  5. probleme avec le calcul des heures
    Par aibar dans le forum Access
    Réponses: 1
    Dernier message: 14/06/2006, 00h38

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