division heure

J

JJ

Guest
Bonjour à tous,
J'ai trouvé une solution à ma durée en posant une question avant la macro: Do While temps <'01:00:00' etc...Loop

Quelqu'un peut il m'aider:
- je voudrais au debut de la macro poser une question:
'Saisir le nombre de jours: ' ( le résultat serait J)

Ensuite il faudrait que la macro divise la durée fixe (ici 1 heure) par le nombre de jours. En effet si une personne a droit à une durée de location (par ex) de 1 heure pour 30 jours, alors elle a droit à 30 minutes pour 15 jours ...logique !

donc ici je voudrais que la variable temps soit remplacée par T (par ex)
T serait égal à 1/60*J
Do While temps <T.....Loop

Mais alors ce resultat serait a reconvertir en hh:mm:ss puisque la macro utilise ce format temps< '01:00:00'

Qui pourrait m'aider à ecrire cette modif de macro et comment Dim ces 2 variables T et J ?
merci et bon WE
JJ
 

JYLL

Nous a quitté
Repose en paix
Bonjour,

Voilà une petite macro qui devrait répondre au besoin. Si ce n'est pas le cas redemander de l'aide.
Bonne journée.
Amicalement.
JYLL


Sub divise_temp()
Dim T As Date
T = '1:00:00'
Dim diviseur As Integer
diviseur = CInt(InputBox('donnez le nombre de jours', 'Saisie'))
résultat = Format(T / diviseur, 'hh:mm:ss')
cells(1,1)=résultat
End Sub
 
J

JJ

Guest
Bonjour et merci pour cette macro, je vais la tester demain.
je vois que le resultat de la division se place en col1 ligne 1
Peut on mettre le resultat dans une variable que je pourrai utiliser ensuite dans ma macro quand j'écris
Do While temps< cette variable
merci
JJ
 
J

JJ

Guest
Bonjour
Merci pour ta macro.
Je l'écris en entier pour bien comprendre car je voudrais rajouter un test:

Dim temps As Date
Dim T As Date
T='01:00:00'
Dim diviseur As Integer
diviseur=Clnt(InputBox('Nombre de jours:','Saisie'))
resultat=Format(T/diviseur, 'hh:mm:ss)
C=3000
Do While temps<resultat
temps=temps+Cells(C,1)
je fais une action
C=C-1
Loop

Pour la formule, il faudrait ecrire T/30 *diviseur pour faire une règle de 3, par ex si T=6H, alors 10j=
il faut mettre en minutes soit 360minutes
Diviser par le nombre de jours d'un mois moyen,30 et multiplier par 10 soit:
T/30*diviseur=360/30 *10= 120minutes = '02:00:00'
Ai je vrai?

Le test que je voudrais rajouter est plus difficile
Mon action commence à la ligne du bas de tableau (3000) et s'accomplit en remontant les lignes jusqu'a ce que la durée en col1 soit egale à 1H ou à la variable qu'on vient de definir.

je voudrais rajouter une question 'Nom ?' saisir (nouvelle variable)

Je souhaite que l'action ne commence qu'a compter de la 1ère ligne dont la col 3 contient le Nom répondu a la question, puis fait l'action comme precedemment.

Est ce possible de rajouter cette condition?
(en fait l'action debute a la 1ere ligne contenant le nom pendant 1H de durée cumulée au lieu de commencer a la ligne 3000)
Merci et bon dimanche
JJ
 

Discussions similaires

Réponses
20
Affichages
593