Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb avec les nombres decimaux "long" et autre

1 réponse
Avatar
Alfred WALLACE
Bonjour,
je n'arrive pas =E0 d=E9finir le bon type
de variable pour faire des calculs sur des dur=E9es.

j'ai une variable d=E9finie comme ceci :

Public duree_global As Long

contenant un nombre repr=E9sentant des secondes,
par exemple 7800 secondes, qui repr=E9sentent 2h10mn

dans un userform, j'ai un textbox dans lequel je veux mettre
la chaine de caract=E9re suivante

UserForm1.TextBox1 =3D _
Int((duree_global - UserForm1.Pb_duree_global.Value) / 3600) & " h " &
_
(duree_global - UserForm1.Pb_duree_global.Value) - Int((duree_global -
_
UserForm1.Pb_duree_global.Value)) / 60 & " mn"

UserForm1.Pb_duree_global.Value est la valeur d'une progressbar
que j'incr=E9mente chaque secondes de 1 pour voir avancer le temps.

ors, cel=E0 me donne des valeurs proche du n'importe quoi .... ce qui me
fait
dire que c'est mon code qui fait ce que je lui demande, =E0 savoir ...
n'importe quoi ...

pourriez vous m'aider =E0 y voir plus clair ?
j'ai "option explicit" dans chacun de mes modules pour me forcer
=E0 d=E9finir mes variables ... mais l=E0, je m'y perd.

Merci

jos=E9

1 réponse

Avatar
MichD
Bonjour,

Je ne sais pas ce que tes textbox contiennent... mais tu dois te rappeler si ces derniers contiennent des valeurs
numériques ou des Dates, tu dois utiliser une fonction de conversion pour transformer ce qu'affiche le contenu d'un
textbox. Ce dernier contient toujours du TEXTE peu importe les apparences.
Fonction de conversion pour les dates : Íate(Textbox1)
Fonction contenant des valeurs décimales : = Cdbl(TextBox1)
Fonction pour les entiers : = Clng(textbox1)

Important : les fonctions utilisent les paramètres définis dans le panneau de configuration Windows pour lire et
interpréter le contenu des textbox. À titre d'exemple, pour pouvoir utiliser = Cdbl(TextBox1), le séparateur décimal du
textbox doit être identique au séparateur décimal du panneau de configuration...

En dernier lieu, si ta variable peut prendre divers types de données, utilise : Public duree_global As Variant


MichD
--------------------------------------------
"Alfred WALLACE" a écrit dans le message de groupe de discussion :


Bonjour,
je n'arrive pas à définir le bon type
de variable pour faire des calculs sur des durées.

j'ai une variable définie comme ceci :

Public duree_global As Long

contenant un nombre représentant des secondes,
par exemple 7800 secondes, qui représentent 2h10mn

dans un userform, j'ai un textbox dans lequel je veux mettre
la chaine de caractére suivante

UserForm1.TextBox1 = _
Int((duree_global - UserForm1.Pb_duree_global.Value) / 3600) & " h " &
_
(duree_global - UserForm1.Pb_duree_global.Value) - Int((duree_global -
_
UserForm1.Pb_duree_global.Value)) / 60 & " mn"

UserForm1.Pb_duree_global.Value est la valeur d'une progressbar
que j'incrémente chaque secondes de 1 pour voir avancer le temps.

ors, celà me donne des valeurs proche du n'importe quoi .... ce qui me
fait
dire que c'est mon code qui fait ce que je lui demande, à savoir ...
n'importe quoi ...

pourriez vous m'aider à y voir plus clair ?
j'ai "option explicit" dans chacun de mes modules pour me forcer
à définir mes variables ... mais là, je m'y perd.

Merci

josé