Bonjour,
Je souhaite avoir l'heure du système arrondi au quart d'heure supérieur. Ex 10h10 devient 10h15
Cordialement!
Bonjour,
Je souhaite avoir l'heure du système arrondi au quart d'heure supérieur. Ex 10h10 devient 10h15
Cordialement!
Bonjour.
Une fonction?Cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Function fQuartDHeure(ByVal dte As Date) As Date Dim iHeure As Integer Dim iMinute As Integer iHeure = Format(dte, "hh") iMinute = Format(dte, "nn") If iMinute Mod 15 > 7 Then iMinute = ((iMinute \ 15) + 1) * 15 fQuartDHeure = TimeValue(iHeure & ":" & iMinute) End Function
PGZ
Bonjour,
il me faudrait une sub plutot qu'une fonction.
Cordialement.
Bonjour,
en utilisant la fonction ci-dessous j'obtient un nombre de 4 caractères. Il faudrait que ce nombre se termine par 00, 15, 30, 45 en fonction de la tranche dans laquel il se trouve pour arrivée au quart d'heure supérieur.
Quelqu'un a une idée de comment faire?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub heure() Range("A1") = Format(Now, "hhnn") End Sub
Re,
Tu peux toujours essayerSi tu vois ce qu'est la fonction "fQuartDHeure".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Sub heure() ThisWorkbook.Worksheets("NomFeuille").Range("A1") = fQuartDHeure(Now) End Sub
Cordialement,
PGZ
bonjour,
merci la sa me plait ^^
cordialement.
rectification : ta function ne marche pas toujours ......
exemple 17h49 reste 17h49.
Il va falloir continuer à chercher.
bon week à lundi ^^lol
Et comme cela :?
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 Function fQuartDHeure(ByVal dte As Date) As Date Dim iHeure As Integer Dim iMinute As Integer iHeure = Format(dte, "hh") iMinute = Format(dte, "nn") If iMinute Mod 15 > 7 Then iMinute = ((iMinute \ 15) + 1) * 15 If iMinute = 60 Then iMinute = 0 iHeure = iHeure + 1 If iHeure = 24 Then iHeure = 0 End If fQuartDHeure = TimeValue(iHeure & ":" & iMinute) End Function
PGZ
bonjour
et si il est 11heure 5 minute sa doit marquer quoi?
ca veut dire que tu veux afficher l'heure exacte 0.00000000001mmmmmmsecondes tout les quart d'heure soit 5 fois par heure
pgz vraiment trop dure les subs
bon courage
au plaisir
Salut Patrick.
C'est qu'il n'est pas facile, le client! Et le client est
Un de ces jours (c'est promis!) j'essaie les procédures sub.
Bonjour chez toi.
PGZ
re
ok pgz dès que tu commence tu m'appelle j'aimerais m'y mettre moi aussi aux subs
au plaisir
Une autre proposition générique
La fonction:
La fonction peut être condensée comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Function f(ByVal Dte As Date, ByVal q As Byte) As Double 'q le nombre de minute à arrondir Dim h As Double, s As Double s = q / (24 * 60) h = Dte - Int(Dte) + s h = s * Int(h / s) f = Int(Dte) + h End Function
Pour ne pas recevoir la même remarque, ci-joint la procédure:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Function f(ByVal Dte As Date, ByVal q As Byte) As Double Dim s As Double s = q / (24 * 60) f = s * Int(1 + (Dte - Int(Dte)) / s) + Int(Dte) 'Tu enlève +Int(Dte) si tu veux récupérer l'heure sans la date End Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Sub LHeure() With Worksheets("Feuil2").Range("A1") .NumberFormat = "h:mm:ss" .Value = f(Now, 15) End With End Sub
je me suis servi de la macro de mercatog avec un format "hhmm". excel m'affiche donc une valeur comme "1530" dans la cellule.
mais lorsque je copie cette valeur elle passe en format numérique et devient "0,1688888".
Comment copie le format "hhmm" en format numérique en gardant la valeur initial (dans l'exemple 1530)?
Change le format de la cellule de destination en "hhmm".
le problème est que je ne colle pas vers une cellule mais vers un programme (attachmate myextra). donc le format du programme est numérique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Function f(ByVal Dte As Date, ByVal q As Byte) As Integer Dim s As Double s = q / (24 * 60) f = Format(s * Int(1 + (Dte - Int(Dte)) / s), "hhmm") End Function
Mais qu'il est formidable si tu t'ennuie j'ai encore en tas de soucis pour ma macro.
Il y a encore suffisamment de place sur ce forum.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager