OVH Cloud OVH Cloud

[hh]:mm en VBA

4 réponses
Avatar
Gil HASH
Bonsoir à tous
Je cherche à formater une valeur numérique par l'instruction VBA
FORMAT(Valeur,"[hh]:mm")
Malheureusement, vous l'aurez compris immédiatement, cela ne marche pas car
[hh]:mm est un format
dans la feuille de calcul et non en VBA.
Tout au plus peut-on l'utiliser dans NumberFormatLocal ="[hh]:mm" mais rien
d'autres

Avez-vous une solution simple?

4 réponses

Avatar
anonymousA
bonjour,

peut-être un truc du genre

Cells(1, 2) = FormatDateTime(Cells(1, 1).Value, vbShortTime)

si cells(1,1) contient une valeur compatible avec une date complète .

A+


Bonsoir à tous
Je cherche à formater une valeur numérique par l'instruction VBA
FORMAT(Valeur,"[hh]:mm")
Malheureusement, vous l'aurez compris immédiatement, cela ne marche pas car
[hh]:mm est un format
dans la feuille de calcul et non en VBA.
Tout au plus peut-on l'utiliser dans NumberFormatLocal ="[hh]:mm" mais rien
d'autres

Avez-vous une solution simple?




Avatar
Gil HASH
Bonsoir
Le problème c'est que je veux éviter le retour à 0 passé 23h59
J'utilise des durées de 35h00 ou 47h30




"anonymousA" a écrit dans le message de
news:42b701e9$0$25039$
bonjour,

peut-être un truc du genre

Cells(1, 2) = FormatDateTime(Cells(1, 1).Value, vbShortTime)

si cells(1,1) contient une valeur compatible avec une date complète .

A+


Bonsoir à tous
Je cherche à formater une valeur numérique par l'instruction VBA
FORMAT(Valeur,"[hh]:mm")
Malheureusement, vous l'aurez compris immédiatement, cela ne marche pas
car


[hh]:mm est un format
dans la feuille de calcul et non en VBA.
Tout au plus peut-on l'utiliser dans NumberFormatLocal ="[hh]:mm" mais
rien


d'autres

Avez-vous une solution simple?






Avatar
Patrick Fredin
Bonjour,

Globalement, en VBA, le nombre d'heure est sans importance tant que tu
n'affiches pas le résultat.
Si tu colles le resultat dans une cellule, le format de la cellule peut
assurer la mise en forme.
Si tu veux afficher le résultat par exemple dans un UserForm, tu peux créer
ton propre format d'affichage en sachant qu'une date est un nombre décimal
(la partie entière est le nombre de jour, la partie décimale est la portion
d'un jour, 1/2 étant 12 heures) dans le genre :

lblTime.Caption = Int(dDuree * 24) & "h" & ((dDuree * 24) - Int(dDuree *
24)) * 60

Je pense que cela devrait fonctionner (je n'ai pas vérifié).

Patrick

"Gil HASH" wrote:

Bonsoir
Le problème c'est que je veux éviter le retour à 0 passé 23h59
J'utilise des durées de 35h00 ou 47h30




"anonymousA" a écrit dans le message de
news:42b701e9$0$25039$
bonjour,

peut-être un truc du genre

Cells(1, 2) = FormatDateTime(Cells(1, 1).Value, vbShortTime)

si cells(1,1) contient une valeur compatible avec une date complète .

A+


Bonsoir à tous
Je cherche à formater une valeur numérique par l'instruction VBA
FORMAT(Valeur,"[hh]:mm")
Malheureusement, vous l'aurez compris immédiatement, cela ne marche pas
car


[hh]:mm est un format
dans la feuille de calcul et non en VBA.
Tout au plus peut-on l'utiliser dans NumberFormatLocal ="[hh]:mm" mais
rien


d'autres

Avez-vous une solution simple?











Avatar
Gaenonius
Sub essai()
MsgBox Application.Text(2, "[h]""h""mm")
'ou bien
MsgBox Application.Text(2, "[h]:mm")
End Sub

--
Gaenonius

Bonsoir à tous
Je cherche à formater une valeur numérique par l'instruction VBA
FORMAT(Valeur,"[hh]:mm")
Malheureusement, vous l'aurez compris immédiatement, cela ne marche pas car
[hh]:mm est un format
dans la feuille de calcul et non en VBA.
Tout au plus peut-on l'utiliser dans NumberFormatLocal ="[hh]:mm" mais rien
d'autres

Avez-vous une solution simple?