[VB6] ProgressBar [Résolu/Fermé]

Signaler
Messages postés
117
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
30 août 2019
-
Messages postés
17380
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
-
Bonjour,

j'ai un probléme avec ma progressbar qui, lorsqu'elle ce termine,bug avec comme erreur :
"
Erreur d'exécution '380':

Valeur de propriété non valide
"



Mon code :

'Affichage de la barre de progression
With ProgBarre
    .ShowBar saisie
    .Refresh
    .Label1.Caption = "Traitement en cours ..."
End With

'initialisation de la barre de progression
pourcentage = 100 / (nb)   ' nb =~ 10 000 
j = 0

Do Until f.AtEndOfStream


'des traitement ...


'on met a jour la barre de progression
    ProgBarre.ProgressBar1.Value = j * pourcentage
    j = j + 1
Loop

'on enleve la barre de progression
Unload ProgBarre




Une petite idée quelqu'un ?
Merci d'avance


2 réponses

Messages postés
117
Date d'inscription
dimanche 10 août 2008
Statut
Membre
Dernière intervention
30 août 2019
34
Après de multiples tentatives le probléme viendrai de mon :
"
pourcentage = 100 / nb
"

mon nb vaut 9870 exactement.
Si je tape a la calculette 100/ 9870 j'obtiens 0.01013171...
alors que dans mon programme celui ci met la valeur : 0.0102249 ... dans ma variable pourcentage !!
Ce qui fait que " ProgBarre.ProgressBar1.Value " prend une valeur supérieur à 100 avant la fin du traitement, est plante...

Si quelqu'un a une quelconque idée je suis preneur ...

PS : pourcentage est un double
Messages postés
17380
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 096
Bonjour,
Peut-être en testant avant ?
Dim B as Single
'on met a jour la barre de progression
    B = j * pourcentage : if B > 100 then B=100
    ProgBarre.ProgressBar1.Value = B
    j = j + 1

Autre solution
'on met a jour la barre de progression
    ProgBarre.ProgressBar1.Value = Int(j * pourcentage)
    j = j + 1

A+