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 :

Petit problème de calcul de temps. [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut Petit problème de calcul de temps.
    Bonjour à tous,

    Et merci au forum d'exister, il m'a plusieurs fois sauvé ! !

    Mais aujourd'hui, j'ai un petit problème que je n'arrive pas à résoudre. Voilà, j'ai dans une cellule le temps moyen pour une tache à accomplir (admettons que c'est 0h55/km).

    J'aimerai écrire dans une autre cellule le temps estimé pour une autre tache en prenant en compte cette moyenne, exemple, 200 mètres.

    J'ai donc fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.Cells(LignSaisie, 14).Value = (Val(Tableau(LignTab, 20)) / 1000) / (Val(Range("TempBT").Value))
    Où la valeur de Tableau(LignTab,20) = 200 (ce sont des mètres)
    Et où Range("TempBT").Value = 01:00:00 (distance moyenne par kilomètre)

    Je divise donc les 200 mètre par 1000 pour avoir des kilomètre.

    J'obtiens, au final, un résultat de 0,20. Je pense devoir convertir cette donnée en temps... Mais je ne saisi pas très bien.

    J'ai longuement lu "comprendre-et-gerer-les-dates-sous-excel-et-en-vba.pdf" de Didier Gonard. Mais je n'ai pas tout compris...

    Si quelqu'un peut me venir en aide...

    Denis...

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 730
    Par défaut
    Bonjour,

    Tu divises une distance par l'inverse d'une vitesse; donc tu multiplies une distance par une vitesse:
    km / (h/km) = km * km / h soit km²/h...

    Il faut multiplier.

  3. #3
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Denis,
    Pourrais-tu être un peu plus clair sur ton souhait et nous donner davantage de paramètres: que cherche tu à calculer, quelles sont les données d'entrée.
    Pourquoi veux-tu faire cela en Vba, les formules d'Excel ne te conviennent pas ? trop de données à calculer?
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  4. #4
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut
    Bonjour à tous,

    Et merci de vous pencher sur mon problème.

    Voilà, je travail pour une boite de détection de réseaux souterrains. On a défini un temps moyen pour détecter, par exemple, le courant Basse Tension (TempsBT).

    Pour que nous puissions prévoir un temps de travail à programmer dans un planning, je dois faire une estimation des futurs détections. On peut, à la louche, estimer la distance à faire (par ex:200m).

    Je dois avec ces deux données calculer un temps "estimatif" pour ce travail.

    Je fais du VBA car toutes mes données sont dans des fichiers différents (des TXT en fait) que j'importe quand j'en ai besoin. Et ce n'est qu'une infime partie de mon code.

    Merci pour vos aides...

    Denis...

  5. #5
    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

    Ahh, les dates et les temps sous Excel et VBA .... Je vous suggère deux possibilités:

    1. Vérifier le type de vos différents arguments par VBA, par exemple un
    2. Passer par une conversion en secondes .... sous Excel (anglais, similaire en VBA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =(HOUR(H24)*3600+MINUTE(H24)*60+SECOND(H24))/3600

  6. #6
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut
    En fait, je fais un tableau récapitulatif... Qui ressemble à ça :Pièce jointe 177509

    Denis...

  7. #7
    Membre émérite
    Homme Profil pro
    Programmeur analyste
    Inscrit en
    Février 2009
    Messages
    546
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Canada

    Informations professionnelles :
    Activité : Programmeur analyste
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2009
    Messages : 546
    Par défaut
    Bonjour,
    si tu a 0h55/km et tu veux savoir combien de temps pour 200m. alors

    0h55/km = 0h55/1000m

    0h55 -----------> 1000m
    X -----------> 200m

    c'est une règle de trois

    (200 * 55) / 1000 = X
    donc
    11 = X

    Réponse 0h11 pour 200m

  8. #8
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut
    Bonjour gnain,

    J'avais bien tenté une règle de trois dès le début, mais je me suis perdu dans les dates et les temps et je l'ai complètement oubliée après... Mais je dois avoir un autre problème.

    J'ai bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Debug.Print Tableau(LignTab, 20)
        Debug.Print Range("TempBT").Value
        Temps = (Val(Tableau(LignTab, 20)) * Val(Range("TempBT").Value)) / 1000
    Qui me donne :
    200
    3,81944444444444E-02
    Je pense que 3,81944444444444E-02 doit faire 00:55:00.

    Je n'obtiens pas le bon résultat, il me sort 0,6 (au lieu de 0,2). Ce qui me donne 14 h 24 dans ma cellule qui a ce format là : [h]" h "mm

    C'est pour cela que je pensais avoir un problème de date et de convertion Décimale -> Temps.

    Car ma cellule a ce format, ce qui me donne

  9. #9
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut
    Bon, je pense avoir trouvé, mais la formule n'est pas "jolie"... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Temps = ((Val(Tableau(LignTab, 20)) * Val(Range("TempBT").Value)) / 10000 / 24 * 60) / 24
    Et ça me donne bien 0 h 12...

    Merci encore à vous tous...

    Denis...

  10. #10
    Membre Expert
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    730
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 730
    Par défaut
    Citation Envoyé par gnain Voir le message
    Bonjour,
    si tu a 0h55/km et tu veux savoir combien de temps pour 200m. alors

    0h55/km = 0h55/1000m

    0h55 -----------> 1000m
    X -----------> 200m

    c'est une règle de trois

    (200 * 55) / 1000 = X
    donc
    11 = X

    Réponse 0h11 pour 200m
    C'est ce que j'expliquais mais apparemment ce n'était pas clair, désolé... :p

  11. #11
    Membre éclairé Avatar de DenisHen
    Homme Profil pro
    Dessinateur / projeteur
    Inscrit en
    Novembre 2013
    Messages
    415
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Dessinateur / projeteur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2013
    Messages : 415
    Par défaut
    Merci Promethee25 pour ce gentil sarcasme, mais c'était très clair, enfin je crois.

    Seulement, ma variable n'est pas 55 mais 3,81944444444444E-02. Je suppose donc que c'est égale à 55 voir même à 00:55:00 mais pas pour Excel.

    Et c'est plutôt sur ce point que je bute...

    Faut-il convertir cette "décimale" en "date" ?

    Merci encore pour cette réponse. Je ne peux pas faire d'essais, je suis chez moi et j'ai oublié de mettre ces fichiers sur mon serveur.

    Denis...

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

Discussions similaires

  1. Problème de calcul de temps
    Par bensof1 dans le forum Débuter
    Réponses: 4
    Dernier message: 22/02/2012, 08h14
  2. Réponses: 11
    Dernier message: 19/09/2010, 14h37
  3. petit problème de calcul flottant
    Par fred_sell dans le forum Débuter
    Réponses: 19
    Dernier message: 02/07/2010, 15h03
  4. Batch - Petit probléme de calcule
    Par Lorponos dans le forum Windows
    Réponses: 9
    Dernier message: 22/07/2006, 11h48
  5. Réponses: 8
    Dernier message: 18/09/2002, 03h20

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