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 :

Diviser les heures pour une échelle de temps


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut Diviser les heures pour une échelle de temps
    Bonjour,

    j'ai un tableau avec des valeurs et une échelle de temps, exemple relevé de température.

    les valeurs de temps que je récupère sont aléatoires, et je voudrais faire une échelle linéaire de 15mn en 15mn, tout en gardant dans cette échelle les valeur de relevé

    exemple :
    0:00:00 15°C
    0:20:15 16°C
    0:44:05 17°C
    ....
    2:16:00 20°C


    et je voudrais
    0:00:00 15°C
    0:15:00 15.5°C
    0:20:15 16°C
    0:30:00 16°C
    0:44:05 17°C
    0:45:00 17°C
    1:00:00 17.12°C

    les valeurs de températures sont des extrapolations

    pas facile de diviser les heures et de récupérer le reste de la division

    j'essaie des codes comme ça
    resolution = format(15,"0:00:00)
    nombres de mesure = Temps_Max /resolution

    mais ça plante pour une division par zéro

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 524
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 524
    Points : 16 460
    Points
    16 460
    Par défaut
    Bonjour

    Le reste de la division en 1/4 d'heure est le modulo de l'heure divisée par 1/24/4 soit 1/96

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    Merci Chris de t'occuper de mon pb.

    mais j'ai pas compris ta réponse:

    avec les dates c'est toujours compliquée :
    normalement pour faire une échelle, sans parler de date, on définit la plage:
    plage = valeur max - valeur min
    et la résolution c'est à dire la valeur des incréments sur abscisse

    donc le nombre de points de mesure sera :
    nb_mesure = plage/résolution

    là où j'ai du mal c'est de programmer cela en vba pour définir une échelle de temps linéaire avec un résolution de 15'.

    exemple diviser 15h20'32'' par 15'

    faudrait il que je fasse un fonction dédiée où existe il une méthode générale ?

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2007
    Messages
    293
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 293
    Points : 125
    Points
    125
    Par défaut
    ya yé j'ai trouvé:

    avec l'execelent cours
    http://demco.developpez.com/faqtmp/?...es#ExplicDates

    j' ai pu comprendre un peu le fonctionnement des dates sur excel:

    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
    32
    33
    34
    35
    36
     
    Sub echelle_temps()
     
    T0 = Now
    heure1 = 1 / 24
    Minute1 = heure1 / 60
    seconde1 = Minute1 / 60
     
    resol = 15 * Minute1
    t_deb = 0
    T_fin = heure1 * 4 ' 16 heure
    Tag_date = Cells(9, "E")
     
    nb_ech = T_fin / resol
    absc = t_deb
     
    Do While absc <= T_fin
    phase = phase + 1
    absc = phase * resol
    'absc = absc + phase * resol
    d_absc = CDate(absc)
     
    s = DateDiff("n", Tag_date, d_absc) ' on regarde si une date peut être intégrée
    If s > 0 Then
    Cells(12, phase) = Tag_date
    phase = phase + 1
    Tag_date = CDate(T_fin) ' pour ne plus entrer dans la boucle
    End If
     
    Cells(12, phase) = d_absc
    Cells(12, phase).NumberFormat = "[h]:mm:ss;@"
    Cells(13, phase) = phase
    Loop
     
     
    End Sub
    en espérant que ça serve aux autres

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 05/06/2008, 12h04
  2. [SQL] Besoin d'aide sur les attributs pour une requete
    Par bobobobo01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 27/11/2006, 22h39
  3. Réponses: 5
    Dernier message: 07/07/2006, 06h43
  4. [DEBUTANT]Supprimer les espaces pour une requete
    Par tripper.dim dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2005, 17h04
  5. Question sur exports et les classes (pour une dll)
    Par DjPoke dans le forum Langage
    Réponses: 7
    Dernier message: 08/08/2005, 20h25

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