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 :

compter laps de temps entre dates


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 11
    Par défaut compter laps de temps entre dates
    Merci de lire ma discussion.

    Voici mon dilemme

    dans excel 2007

    J`ai 467567 rangs qui ont du data pour des commis qui prennent de commandes de pièces de remplacement et l`expédition de ceux ci. Et j`ai besoin de calculer la date et l`heure a laquel la commande aurait été complétée

    le data qui m`est disponible est le comme suit:

    Dans la cellule J2 (la date et l`heure de prise de la commande sous le format)
    909281151
    (9 09 28 1152 le premier chiffre c`est l`année, le deuxième est le mois troisième est le jour et les quatre derniers l`heure de création 11 hrs 23 notez-bien qu`il manque les secondes ils ne sont pas disponibles)

    Dans la cellule b2 (le temps passé sur cette commande sous le format)
    J:H:M:S (JOURS:HEURES:MINUTES:SECONDES)
    4d:1h:2:2s

    voici ce que devrait être le résultat dans ce cas cette commande aurait été terminé
    le 2009-10-06 a 12:54 (j`ai omis les secondes)

    merci pour votre aide et aimerais bien remercier le héros qui pourra m`aider avec cela

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    voici ce que devrait être le résultat dans ce cas cette commande aurait été terminé
    le 2009-10-06 a 12:54
    28/09/2009 + 4 jours c'est le 2/10/2009, non?

    une première proposition approximative (ça dépend de la forme de tes données)
    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
    Sub test()
    Dim DtDeb As String, Del As String
    Dim Dtmin As Byte, Dtheur As Byte, Dtjr As Byte, Dtmoi As Byte, Dtan As Byte
    Dim Dljr As Byte, Dlheur As Byte, Dlmin As Byte
    Dim DateDebut As Date, DateFin As Date
    Dim Sep
    Dim DurMin As Long, i As Long
     
    For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row
        DtDeb = Range("J" & i).Value
        Dtmin = CByte(Mid(DtDeb, Len(DtDeb) - 1))
        Dtheur = CByte(Mid(DtDeb, Len(DtDeb) - 3, 2))
        Dtjr = CByte(Mid(DtDeb, Len(DtDeb) - 5, 2))
        Dtmoi = CByte(Mid(DtDeb, Len(DtDeb) - 7, 2))
        Dtan = CByte(Left(DtDeb, Len(DtDeb) - 8))
        DateDebut = DateSerial(Dtan, Dtmoi, Dtjr) + TimeSerial(Dtheur, Dtmin, 0)
     
        Del = Range("B" & i).Value
        Sep = Split(Del, ":")
        Dljr = Val(Sep(0))
        Dlheur = Val(Sep(1))
        Dlmin = Val(Sep(2))
        DurMin = Dlmin + 60 * Dlheur + 24 * 60 * Dljr
        DateFin = DateAdd("n", DurMin, DateDebut)
     
        Range("K" & i).Value = DateFin
    Next i
    End Sub

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour, merctog,

    Que ferait ceci, si T était la valeur d'une cellule contenant ce format étrange de date :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    T = Format(T, "0#/##/## ##:##")
      TP = Mid(T, 7, 2)
      Mid(T, 7, 2) = Left(T, 2)
      Mid(T, 1, 2) = TP
      datedebut = CDate(T)
    (tu ne crois pas qu'il irait plus vite ?)

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour, ucfoutu
    tu ne crois pas qu'il irait plus vite ?
    Je le crois (après avoir testé sur 2 ptits exemples)

Discussions similaires

  1. verifier s'il y a eu une certaine date+temps entre 2 dates
    Par jeje00 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/06/2009, 18h28
  2. Intervalle de temps entre deux clics et date.ToString
    Par calagan99 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/05/2007, 10h51
  3. Requête pour calculer le temps entre deux dates
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 19/05/2006, 14h50
  4. [MySQL] SELECTION DE TEMPS ENTRE 2 DATES
    Par oceane751 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 14/04/2006, 02h54

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