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 :

vérifier si heure + date est dans l'intervalle [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 18
    Points
    18
    Par défaut vérifier si heure + date est dans l'intervalle
    Hello!

    J'ai un problème pour vérifier si une heure est dans une certaine intervalle de temps avec VBA. Voici mon 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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    For i = 4 To wsstats.Range("B65536").End(xlUp).Row
     
        If Format(wsstats.Range(Cells(i, 2).Address).Value, "hh:mm") = "00:00" Then
            test = datejour + 1
        Else
            heuretest = wsstats.Range(Cells(i, 2).Address).Value
            test = datejour & " " & heuretest
        End If
     
        compteur = 0
     
        For y = 1 To UBound(horaires)
            If horaires(y, 1) <> "" And horaires(y, 2) <> "" And horaires(y, 3) <> "" And horaires(y, 4) <> "" Then
                If horaires(y, 5) = "" Or horaires(y, 6) = "" Or horaires(y, 7) = "" Or horaires(y, 8) = "" Then
     
                    If (test >= horaires(y, 1) And test <= horaires(y, 3)) Or (test >= horaires(y, 4) And test <= horaires(y, 2)) Then
                        compteur = compteur + 1
                    End If
                Else
                    If (test >= horaires(y, 5) And test <= horaires(y, 7)) Or (test >= horaires(y, 8) And test <= horaires(y, 6)) Then
                        compteur = compteur + 1
                    End If
                End If
            End If
     
        wsstats.Cells(i, 3).Value = compteur
        Next y
     
    Next i
    Pas mal de bricolages surement, le problème est que bien que la variable test soit de type DD.MM.YYYY HH:MM:SS et que mes entrées dans la variable tableau soient du même format, il n'a pas l'air de comprendre les signes > < pour tester les dates. Quelqu'un aurait une idée?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    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
    Sub Test()
    Dim Lig As Long
    Dim wsstats As Worksheet
    Dim Test As Double, Horaire As Date
        Set wsstats = Sheets("Feuil2")
        With wsstats
            For Lig = 4 To .Range("B65536").End(xlUp).Row
                If .Cells(Lig, 2) = 0 Then
                    Test = DateSerial(Year(Now), Month(Now), Day(Now) + 1)
                Else
                    Test = DateValue(Date) + .Cells(Lig, 2)
                End If
    'FAIRE LE TEST
    'pour l'exemple
    Horaire = "12/05/2009 12:30:00"
                If Test < Horaire Then
                    Stop
                Else
                    Stop
                End If
            Next Lig
        End With
    End Sub
    A+
    Edit:
    J'ai oublier de dire...
    Colonne 2 au format personnalisé, hh:mm:ss

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 37
    Points : 18
    Points
    18
    Par défaut
    Merci de ta réponse j'ai réussi à trouver l'erreur.

    A+!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/05/2017, 00h52
  2. Réponses: 3
    Dernier message: 16/07/2013, 00h48
  3. Verifier si une date est dans un intervalle
    Par Le gris dans le forum C#
    Réponses: 4
    Dernier message: 04/07/2011, 16h26
  4. vérifier si un scalaire est dans une un tableau
    Par STEPH69000 dans le forum Langage
    Réponses: 6
    Dernier message: 04/06/2006, 17h48
  5. Comment vérifier qu'une date est nulle
    Par stressy dans le forum Access
    Réponses: 7
    Dernier message: 09/12/2005, 15h41

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