Format d'un nombre !

hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007 - 15 janv. 2007 à 15:49
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007 - 17 janv. 2007 à 20:19
(Re)Bonjour,

cela fait depuis 2 jours que je me prends la tete avec le format d'un nombre,
ce nombre découle de l'API GetTickCount que je convertis en heure puis que je place ds un textbox,

mais le souci c'est que j'ai beau mettre un format sans chiffre apres la virgule et juste le nombre entier, rien a faire il me laisse apparaitre la virgul ainsi que les chiffres...

Txt_Heure.text = format(Temps,"o")

Temps étant le chiffre convertit en heure.

quelqu'un aurait il une idée du probleme?  mauvaise Orthographe?

merci

13 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 janv. 2007 à 15:56
c'est quoi ce petit o (o comme oscar) dans la chaine de formatage ????

C'est un 0 (zéro) que tu voulais mettre je suppose.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 janv. 2007 à 15:57
Si ça suffit pas passe un coup de CInt sur ton nombre

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007
15 janv. 2007 à 16:00
exact c'etait un  0 que je voulais mettre...

Peux tu developper ton idée du Cint stp je ne vois pas trop ce que tu veux dire.
stp
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 janv. 2007 à 16:11
Cint va te convertir ton nombre en entier (integer), donc sans virgule. Donc à la place de Temps, tu utilise CInt(Temps). Si Temps peut etre suppérieur à 32767, faut remplacer CInt par CLng

Mais chez moi la fonction Format avec 0 suffit, pas besoin de CInt

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 janv. 2007 à 16:12
Salut,

Txt_Heure.text = CInt(Temps)

CInt sert à convertir une variable en type Integer (donc pas de virgule dans le nombre)

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007
15 janv. 2007 à 20:58
Merci bien casy et mortalino mais cela ne marche pas ca me fait erreur 13 "type incompatibles"

...
je ne comprends pas pourquoi ca ne fonctionne pas.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 janv. 2007 à 21:09
Je pense que c'est à cause de la conversion depuis CInt, qui n'accepte que des chaines de caractères.
Essai comme ceci :

Txt_Heure.text = CInt(CStr(Temps))

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
15 janv. 2007 à 21:31
Private Declare Function 
GetTickCount& 
Lib
"kernel32" 
()


Private Sub 
Form_Load()

    Dim temps As Long
    temps = GetTickCount / 3600000
    MsgBox temps & " heures."
End Sub










---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
15 janv. 2007 à 23:56
Le fou arrive avec une formule qui traduit le temps (nombre en millisecondes)  en heures, minutes et secondes...

J'ai ici choisi la date du 1er janvier 2000 mais j'aurais pu en choisir une autre, puisque l'on ne va compter qu'en heures, minutes et secondes et que le fait de ne pas indiquer d'heure pour cette date conduit l'heure à 0 (hé hé !)

Donc :

Private Sub Command1_Click()
   temps = 363000    'millisecondes, donc
   MsgBox Format(DateAdd("s", temps / 1000, #1/1/2000#), "hh:mm:ss")
End Sub
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 janv. 2007 à 08:43
Je pensais cette nuit que rien n'empêcherait de lancer un compteur pendant plus de 24 heures, d'une part, et de vouloir en plus avoir cette traduction avec des millisecondes résiduelles !

Allons-y donc :

Private Sub Command1_Click()
   temps = 111363002 'millisecondes, donc)
   Ddep = #1/1/2000#
   Darr = DateAdd("s", temps / 1000, Ddep)
   Dh = Format(Darr, "hh:mm:ss")
   MsgBox DateDiff("d", Ddep, Darr) & " jours" & vbCrLf & Val(Mid(Dh, 1, 2)) & " heures" & vbCrLf & _
   Val(Mid(Dh, 4, 2)) & " minutes" & vbCrLf & Val(Mid(Dh, 7)) & " secondes" & vbCrLf & _
   temps Mod 1000 & " millisecondes"
   MsgBox Format(Darr, "hh:mm:ss")
End Sub
0
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007
17 janv. 2007 à 18:14
desole pour le retard mais taff oblige...


Pas moyen de faire fonctionner vos propositions pour convertir en entier le GetTickCount !


je vais me debrouiller avec, a moins que quelqu'un est encore une solution?


 


merci quand meme a tous
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 janv. 2007 à 18:34
Et...
Quelle est la nécessité de le passer en Integer ?

Je viens d'essayer ceci, qui marche parfaitement !

Private Declare Function GetTickCount& Lib "kernel32" ()


Private Sub Command1_Click()
   temps = GetTickCount& 'millisecondes, donc)
   Ddep = #1/1/2000#
   Darr = DateAdd("s", temps / 1000, Ddep)
   Dh = Format(Darr, "hh:mm:ss")
   MsgBox DateDiff("d", Ddep, Darr) & " jours" & vbCrLf & Val(Mid(Dh, 1, 2)) & " heures" & vbCrLf & _
   Val(Mid(Dh, 4, 2)) & " minutes" & vbCrLf & Val(Mid(Dh, 7)) & " secondes" & vbCrLf & _
   temps Mod 1000 & " millisecondes"
   MsgBox Format(Darr, "hh:mm:ss")
End Sub

Je me suis contenté, pour cet exemple, d'un seul GetTickCount (une seule mesure, donc)

Pour une durée il faut prendre 2 mesures : une au départ et l'autre à la fin, et faire la différence (la variable temps recevant cette durée doit bien évidemment être un long elle-même )

Quel est fonc ton problème ?
0
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007
17 janv. 2007 à 20:19
Mon probleme est que j'ai mis l'API ds un timer, c'est peut etre du a ca...

je ne veux pas voir un temps precis ni faire de difference mais juste voir le temps evoluer , d'ou le timer, puis si je veux le mettre en integer c'est que c'est ce qu'il me faut pour le bon deroulemen de mon prog!

merci en tout cas ca fait plaisir de voir qu'on est pas seul si on a une difficulté
0
Rejoignez-nous