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

  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
    715
    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 : 715
    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 Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Sujet probableme clos mais voilà une solution qui n'utilise pas de division pour convertir mais la fonction Formatd’Excel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
        Dim temps#
        temps = 1                   'temps vaut 1 jour
        temps = temps / 24          'temps vaut 1 heure
        temps = temps / 2           'temps vaut 30 minutes
        temps = temps + temps / 60  'temps vaut 30 minutes et 30 secondes
     
        MsgBox Format(temps, "h ""h"" m ""m"" s ""s""") 'temps au format [x h x m x s]
    End Sub
    h pour ton nombre en heure
    ""h"" pour mettre la lettre h dans le format
    idem avec les m et les s

  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
    Bonjour antonysansh,

    Effectivement, je m’apprêtais à poster cette discussion comme "RESOLUE"...

    Merci pour ton astuce...

    Denis...

  12. #12
    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
    Re bonjour Denis, le forum

    Voici un code que je viens de réaliser, dis-moi si cela te convient.

    Le forum qu'en pensez-vous ?

    Fichier attaché :
    Calcul_Durée_Estimée.xlsm


    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
    37
    38
    39
    40
    41
    42
    43
    44
    Sub Calcul_Durée_Tache()
    Dim Calc As Worksheet
    Dim Tr As Range
    Dim i As Integer
    Dim j As Integer
    Dim NbLigne As Integer
    Dim NbCol As Integer
    Dim Reste(1) As String
    Set Calc = ThisWorkbook.Sheets("Feuil1")
    Set Tr = Calc.Range("A1")
    Tr = Tr.Offset(0)
     
    With Sheets("Feuil1")
        NbLigne = .Cells(.Rows.Count, 1).End(xlUp).Row - 1 ' On compte le nombre de tronçons présents en colonne A
    End With
     
    For i = 2 To NbLigne
    Tr.Offset(i, 7).ClearContents ' ici on effece les données précédement calculées
    Next i
     
    For i = 2 To NbLigne 'Pour chaque tronçon
        For j = 1 To 4
        Tr.Offset(i, j).Select
            If Tr.Offset(i, j) <> "" Then
                If Tr.Offset(0, j) Like "*km*" Then
                    Tr.Offset(i, 7) = Tr.Offset(i, 7) + (Tr.Offset(i, j) * Tr.Offset(1, j) / 1000) ' Calcul en minutes pour des données en km
                Else
                    Tr.Offset(i, 7) = Tr.Offset(i, 7) + (Tr.Offset(i, j) * 30) 'Calcul en minutes pour les Folios par exemple
                End If
            End If
        Next j
     
        If Tr.Offset(i, 7) > 60 Then ' mise au format 00h00
            Reste(0) = Tr.Offset(i, 7)
            Tr.Offset(i, 7) = (Int(Tr.Offset(i, 7) / 60)) & "h" & (Reste(0) - (Int(Tr.Offset(i, 7) / 60) * 60))
            Reste(1) = (Reste(0) - (Int(Reste(0) / 60) * 60))
                If Reste(1) < 10 Then
                 Tr.Offset(i, 7) = (Int(Reste(0) / 60)) & "h0" & Reste(1)
                End If
        End If
     
    Next i
     
    End Sub
    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

  13. #13
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Bon j'apporte ma pierre à l'édifice et en pas trop de ligne

    Avec en colonne A les noms des tronçons et ligne 2 en minute le temps par kilomètre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
        Dim n&, i&, j&, temps#
        n = Cells(Application.Rows.Count, 1).End(xlUp).Row
        For i = 3 To n
            temps = 0
            For j = 2 To 6
                temps = (Cells(i, j) * Cells(2, j) / 1000) + temps
            Next j
            temps = temps / 60 / 24
            Cells(i, 8) = Format(temps, "h ""h"" m ""m""")
        Next i
    End Sub

  14. #14
    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 messieurs pour vos précieuses aides...

    eric4459 : merci mais ce code est trop "compliqué" pour moi... J'ai du mal avec les .Offset, c'est un décalage ? J’hésite toujours à utiliser un code que je ne maitrise pas.

    enthonysanch : merci pour ce bout de code.

    Enfin, je n'explique pas pourquoi vous divisez tous par 60 puis, encore par 60 alors que moi, je divise par 24, puis multiplie par 60 ?

    Encore merci pour vos exemples, je vais les étudier de près, même si je n'ai pas le temps...

    J'ai encore beaucoup d'autre code à écrire...

    Denis...

  15. #15
    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
    Denis,
    Effectivement Offset permet de décaler d'un nombre de ligne i et de colonne j en partant d'une référence
    Ici je déclare ma référence:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set Tr = Calc.Range("A1")
    Tr = Tr.Offset(0)
    Ici je vais décaler d'un nombre i variable les lignes tout en restant sur ma colonne 7 (colonne H sachant que la colonne A est 0)
    J'ai pour ma part divisé par 60 pour avoir les durées en minutes pour ensuite les convertir en heures.
    J'ai également utilisé les fonction tableau (Reste(0) et Reste(1) ) pour mettre en mémoire le résultat de mes calculs: Comme j'écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tr.Offset(i, 7) = (Int(Tr.Offset(i, 7) / 60)) & "h" & (Reste(0) - (Int(Tr.Offset(i, 7) / 60) * 60))
    la valeur de ne sera plus un nombre, car il contient "h".
    Je suis conscient que c'est un peu compliqué mais avec un peu de pratique tu parviendra à déchiffer facilement ce code.
    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

  16. #16
    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 Comprend pô.
    Je ne comprend plus rien, j'ai réécris mon code pour qu'il ressemble aux vôtres (surtout celui d'Anthony)...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Temps = (Cells(LignSaisie, 8).Value * Cells(3, 8).Value / 1000)
     
        Temps = Temps + (Cells(LignSaisie, 9).Value * Cells(3, 9).Value / 1000)
     
        Temps = Temps + (Cells(LignSaisie, 10).Value * Cells(3, 10).Value / 1000)
     
        Temps = Temps + (Cells(LignSaisie, 11).Value * Cells(3, 11).Value)
     
        Temps = Temps / 60 / 24
     
        ActiveSheet.Cells(LignSaisie, 14).Value = Format(Temps, "h ""h"" mm ""m""")
    Mais j'ai de grosses incohérences entre mes données et les calculs, voici une petite capture d'écran :
    Pièce jointe 177531
    On peut voir ligne 6 (3ème ligne des données) que 5 Géoref. * 35 minutes donne 0h07m avec le code ci-dessus au lieu de 2h 55m...

    C'est là que je ne comprend absolument plus rien !

    Denis...

  17. #17
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    C'est normale, cette fois le 5 ce n'est pas 5 mètres en fait (si j'ai bien compris)

    Peux-tu me réexpliquer combien de colonne tu as et comment elles doivent ce calculer (les x m / h c'est ok c'est les autres colonnes qui ne fonctionne pas des mêmes façons que je ne comprends pas)

    EDIT :
    Si je comprends bien, pour les colonnes H, I et J, tu prorates sur 1 Km pour les autres tu multiplies simplement par le nombre d'action à faire ?

  18. #18
    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
    D'ailleurs, eric4459, dans le tableau joint (Calcul_Durée_Estimée.xlsm), si on laisse la ligne 3 vide, que l'on écrit 35 en E2 et 5 en E3,

    le résultat sera 2h30, alors que 5*35mn ne peut donner 2h30...

    Là aussi, je ne saisie pas... ;-)

  19. #19
    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
    Ok Anthony,

    A partir de la ligne 4 (1ère ligne de données) les colonnes H, I et J sont des distances exprimées en mètre.

    Ces distances sont à convertir en kilomètre et à estimer avec la ligne 3 de ces 3 colonnes, celle qui comporte les moyennes (h/km).

    La colonne K est une unité, c'est le temps moyen passé par mes collègues pour géo-référencer un Folio.

    On obtient donc le temps estimé par Géoref en multipliant le nombre de Géoref par sa moyenne (0h35/folio).

    La "moyenne de toutes ces moyenne" se retrouvera dans la colonne N. Les colonnes L et M n'ont pas encore d'utilité pour l'instant..

    Merci pour cette précieuse aide...

    Denis...

  20. #20
    Membre Expert Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Par défaut
    Voilà une petite correction :
    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
    Sub test()
        Dim n&, i&, j&, temps#
        n = Cells(Application.Rows.Count, 1).End(xlUp).Row
        For i = 3 To n
            temps = 0
            For j = 8 To 13
                If (j - 8) \ 3 = 0 Then
                    temps = (Cells(i, j) * Cells(2, j) / 1000) + temps
                Else
                    temps = (Cells(i, j) * Cells(2, j)) + temps
                End If
            Next j
            temps = temps / 60 / 24
            Cells(i, 8) = Format(temps, "h ""h"" m ""m""")
        Next i
    End Sub
    Cette fois seules les 3 premières colonnes sont pro ratées et pas les autres.

    Peut tu nous faire une capture avec les différents cas particuliers avec la valeur (a la main) qui devrait si trouver.


    EDIT : J'avais bien compris ^^
    PS : par contre j'ai mis en ligne 2 les temps moyen estimés donc c'est plus simple qu'en texte pour toi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

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