Progress bar [Résolu]

Signaler
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019
-
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
-
Bonjour,
j ai fait un petit logiciel en vb pour répertorier mes capsules de champagne
cela marchait bien
j avais des Progress bar qui marchait
aujourd'hui j ai voulu rajouter une donnée la Progress bar est plante avec le message suivant
invalide property.value
pourquoi
quelqu un a la réponse
merci

9 réponses

Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137
bonjour !
Sans nous mettre le code ni savoir le ligne de l'erreur ni les valeurs Min et Max de le ProgressBar difficile de répondre !
Je penche pour une valeur extérieure à la plage de le ProgressBar
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

les progress bar marche sans programme juste avec les réglages des proprietes

Sub affichage(Index As Integer)
    
    Dim Exist_image As String
    
    Exist_image = Dir(App.Path & "\" & tab_capsule(Index).Numero_Capsule & ".jpg")
    'traite les photos
    If Exist_image = "" Then
        photo_capsule.Picture = LoadPicture(App.Path & "\aucun.jpg")
    Else
        photo_capsule.Picture = LoadPicture(Exist_image)
    End If
    'traite les donnees
    Nom.Text = Strings.Trim(tab_capsule(Index).Nom)
     Prenom.Text = Strings.Trim(tab_capsule(Index).Prenom)
      couleur.Text = Strings.Trim(tab_capsule(Index).couleur)
       Dessin.Text = Strings.Trim(tab_capsule(Index).Dessin)
        Numero_Capsule.Text = Strings.Trim(tab_capsule(Index).Numero_Capsule)
        village.Text = Strings.Trim(tab_capsule(Index).village)
         Cotation.Text = Strings.Trim(tab_capsule(Index).Cotation)
          totalcot.Text = Strings.Trim(tab_capsule(Index).totalcot)
         totalcaps.Text = Strings.Trim(tab_capsule(Index).totalcaps)
         lambert1.Text = Strings.Trim(tab_capsule(Index).lambert1)

         
 Liste_capsule.Text = (Numero_Capsule) & " | " & (Nom.Text) & "  " & (Prenom.Text) & "  " & (couleur.Text) & " " & (Dessin.Text) & "  " & (village.Text) & " | " & (Cotation.Text)
 List2.Clear
   capsule_en_cours = Index
    
    If capsule_en_cours = 1 Then
       Btn_premier.Enabled = False
       Btn_precedent.Enabled = False
    Else
       Btn_premier.Enabled = True
       Btn_precedent.Enabled = True
       End If
       
    If capsule_en_cours = dernier_capsule Then
       Btn_suivant.Enabled = False
       Btn_dernier.Enabled = False
    Else
        Btn_suivant.Enabled = True
        Btn_dernier.Enabled = True
        
       
        
        End If
         'traite affichage liste_capsule & liste_capsule2
     
        Liste_capsule2.Text = (Numero_Capsule.Text) & " | " & (Nom.Text) & " " & (Prenom.Text)
        Liste_capsule.Text = (Numero_Capsule) & " | " & (Nom.Text) & "  " & (Prenom.Text) & "  " & (couleur.Text) & " " & (Dessin.Text) & "  " & (village.Text)
        
        
        'traite affichage list2
  Dim y As Integer
  Dim a As Double
   Dim x As Integer
    For x = 1 To dernier_capsule
    Liste_capsule2.AddItem (tab_capsule(x).Numero_Capsule)
    List2.AddItem (tab_capsule(x).Numero_Capsule) & " = " & " " & (tab_capsule(x).Cotation)
     
     'traite affichage la valeur totale
     List3.Clear
   Next
   For x = 1 To dernier_capsule
   List3.AddItem Strings.Trim(tab_capsule(x).Cotation)
   Next
   a = 0
   
For y = 0 To List3.ListCount - 1
  
If IsNumeric(List3.List(y)) Then
   a = a + List3.List(y)
 totalcot.Text = a
   
   End If
totalcaps = dernier_capsule
  
   ProgressBar1.Value = totalcaps
 ProgressBar2.Value = totalcot

Next

End Sub
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137
Bonsoir !
Plusieurs choses
1) Le code n'est pas corrctement présenté : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
2) A quoi correspond index à l'appel de la fonction ? Je le devine mais je te laisse répondre
3) Tu dis que les Progressbar ne sont pas par programme : c'est quoi les lignes à la fin avec Progress.Value ?
4) si tu n'affiches que les caractéristiques d'une capsule quelle est l'utilité des Progressbar ?
5) commentes ton code et donnes des noms révélateur à tes contrôles : ListBouchons est plus parlant que List3 par exemple
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

peut etre mal ecrit mais je suis pas un expert en programmation
les progress bar servent a indiquer le nombre total de capsules dans mon programme
ainsi que la valeur total de mes capsules juste pour le fun
je programme sans avoir pris des lecons juste avec les conseils d un ex collegue quand je travaille
je suis maintenant a la retraite est n est plus de contact avec lui
j essai de me débrouillait seul
excuse moi oui a la fin du programme il y a 2 lignes de programme pour les progress barcela marchait bien puisque j ai rentre 3600 capsules
soudain une erreur pourquoi
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137
Bonjour !
Tu as écrit : les progress bar servent a indiquer le nombre total de capsules dans mon programme
ainsi que la valeur total de mes capsules juste pour le fun

Donc dans ce cas elles sont inutiles : le rôle d'une ProgressBar est de voir l'évolution d'un traitement , un simple Label te renseignerait aussi bien !
As-tu été voir le lien que je t'ai indiqué pour la présentation du code ?
Pour ton information moi aussi je suis retraité et j'ai appris VB 6, VB Net et maintenant C# en suivant les conseils que des intervenants du site m'ont prodigués !
Enlèves les 2 ProgressBar et corriges les erreurs dues à leur suppression : à mon avis cela va résoudre ton problème !

Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137
Bonjour !
voici ce qu'est une balise

tu as une balise d'ouverture et une balise de fermeture
Selon le langage tu as des balises pour le basic, le C#, le pascal, etc .....
Reste à faire un copier-coller du code que tu veux insérer entre les balises
Cela te permet de déposer un bout de code de façon plus clair et plus lisible
Remarque aux niveau des boucles For Next et des If-Then-Else le décalage pour bien identifier le corps de la boucle ou les blocs conditiionnels

Sub affichage(Index As Integer)
    
    Dim Exist_image As String
    Exist_image = Dir(App.Path & "\" & tab_capsule(Index).Numero_Capsule & ".jpg")
    'traite les photos
    If Exist_image = "" Then
        photo_capsule.Picture = LoadPicture(App.Path & "\aucun.jpg")
    Else
        photo_capsule.Picture = LoadPicture(Exist_image)
    End If
    'traite les donnees
    Nom.Text = Strings.Trim(tab_capsule(Index).Nom)
    Prenom.Text = Strings.Trim(tab_capsule(Index).Prenom)
    couleur.Text = Strings.Trim(tab_capsule(Index).couleur)
    Dessin.Text = Strings.Trim(tab_capsule(Index).Dessin)
    Numero_Capsule.Text = Strings.Trim(tab_capsule(Index).Numero_Capsule)
    village.Text = Strings.Trim(tab_capsule(Index).village)
    Cotation.Text = Strings.Trim(tab_capsule(Index).Cotation)
    totalcot.Text = Strings.Trim(tab_capsule(Index).totalcot)
    totalcaps.Text = Strings.Trim(tab_capsule(Index).totalcaps)
    lambert1.Text = Strings.Trim(tab_capsule(Index).lambert1)
    Liste_capsule.Text = (Numero_Capsule) & " | " & (Nom.Text) & "  " & (Prenom.Text) & "  " & (couleur.Text) & " " & (Dessin.Text) & "  " & (village.Text) & " | " & (Cotation.Text)
    List2.Clear
   capsule_en_cours = Index
   If capsule_en_cours = 1 Then
          Btn_premier.Enabled = False
          Btn_precedent.Enabled = False
   Else
         Btn_premier.Enabled = True
         Btn_precedent.Enabled = True
   End If
   If capsule_en_cours = dernier_capsule Then
        Btn_suivant.Enabled = False
        Btn_dernier.Enabled = False
   Else
        Btn_suivant.Enabled = True
        Btn_dernier.Enabled = True
    End If
   ' traite affichage liste_capsule & liste_capsule2
   Liste_capsule2.Text = (Numero_Capsule.Text) & " | " & (Nom.Text) & " " & (Prenom.Text)
   Liste_capsule.Text = (Numero_Capsule) & " | " & (Nom.Text) & "  " & (Prenom.Text) & "  " & (couleur.Text) & " " & (Dessin.Text) & "  " & (village.Text)
    'traite affichage list2
  Dim y As Integer
  Dim a As Double
  Dim x As Integer
  For x = 1 To dernier_capsule
      Liste_capsule2.AddItem (tab_capsule(x).Numero_Capsule)
      List2.AddItem (tab_capsule(x).Numero_Capsule) & " = " & " " & (tab_capsule(x).Cotation)
  Next   
  'traite affichage la valeur totale
  List3.Clear
  For x = 1 To dernier_capsule
       List3.AddItem Strings.Trim(tab_capsule(x).Cotation)
  Next
  a = 0
  For y = 0 To List3.ListCount - 1
      If IsNumeric(List3.List(y)) Then
          a = a + List3.List(y)
          totalcot.Text = a
     End If
     totalcaps = dernier_capsule
     ProgressBar1.Value = totalcaps
     ProgressBar2.Value = totalcot 
 Next

End Sub


Maintenant autre chose : sais-tu te servir du débogage pour identifier les erreurs et utiliser les points d'arrêt dans un programme ?
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

bonjour
merci de me répondre et de me faire cet exemple mais le code que tu as écrit ressemble au mien sans les espaces entre les lignes de code
oui j'essai l'aide mais ne comprend toujours les explications si cela est en anglais je suis nul
mais je ne sais toujours pas pourquoi ma Progress bar c'est plante
encore merci pour tes réponses
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137 >
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

Bonjour !
Oui le code ressemble au tien mais
1) il a été indenté ( Remarque aux niveau des boucles For Next et des If-Then-Else le décalage pour bien identifier le corps de la boucle ou les blocs conditionnels )
2) Regarde les couleurs qui permettent d'identifier les mots clés, les chaines de caractères, etc ....
Quant à t'aider plus difficile pour moi : je n'ai plus VB 6 depuis facilement 10 ans et il n'est plus commercialisé depuis 1998 ! De plus la technologie a évoluée et maintenant on en est à VB Net 2017 qui est largement plus performant !
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

ok merci
ou peut on telecharger vb 2017
mon programme marchera t il avec cette nouvelle mouture
encore merci
ps apres avoir suivi tes conseils mais progress bar remarche
merci
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137 >
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

Bonjour
ET non malheureusement ton programme ne fonctionnera point avec VB Net 2017 ! C'est une autre technologie basée sur le Framework Net : il faudra tout recoder !
Pour le télécharger voir le site officiel de Microsoft et bien prendre Visual Studio pour Desktop : de plus tout dépend de ton système d'exploitation pour savoir quel version choisir ( quel Windows est installé sur ta machine ) . Il existe Visual Studio 2010, 2013, 2015 et 2017 pour les moins anciens et la version 2017 ne fonctionne pas avec windows XP par exemple
Chez moi j'ai Windows 10 Pro avec Visual Studio Community 2017 !
Bien heureux que tu as pu résoudre ton problème !
Messages postés
43
Date d'inscription
mercredi 20 juin 2018
Statut
Membre
Dernière intervention
13 avril 2019

la valeur que tu rentres dans ta progress bar ne doit pas t elle dépasser 100 ? je sais qu'en C# la valeur de la progress bar vas de 0 a 100 car c'est un pourcentage
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137
Bonjour !
Eh oui dire bonjour c'est plus agréable !
De plus tu fais une erreur : 100 est la valeur Maximum par défaut de la ProgressBar comme la valeur 0 est la valeur minimum par défaut et la valeur de progression n'est nullement un pourcentage .
Rien ne m'empêche d'avoir une ProgressBar de 100 à 1500 par exemple
Et ceci est valable en VB 6, VB Net et C#
Ne confonds-tu pas avec les BackGroundWorker où la propriété ReportProgress va de 0 à 100 et que dans ce cas la ProgressBar que l'on associe si besoin doit aller obligatoirement de 0 à 100
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137 >
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021

Pardon c'est l'évènement ProgressChanged qui renvoie une valeur entre 0 et 100 qui représente le pourcentage de la plage de valeurs de la progression du BackGround
Il faut évidemment que cet évènement soit activé ( mettre à True la propriété WorkerReportsProgree du contrôle BackGroundWorker )
la propriété ReportProgress n'existe pas
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

non moi j ai rentrer 25000 et cela marche
oui c est un pourcentage mais on peut avoir un pourcentage de 25000
merci pour la reponse
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

bonjour
vb95 je te remercie pour toutes tes réponses
si autre problème je reviendrai vers toi surement
merci encore
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137
Bonjour totoche1748
si tu penses que ton problème est résolu cliques dans la roue dentée en haut à droite du message pour mettre le sujet en Résolu .
Merci !
Messages postés
25
Date d'inscription
lundi 24 décembre 2018
Statut
Membre
Dernière intervention
18 février 2019

bonjour
fausse alerte après avoir rentre plusieurs données le problème est revenu
donc suppression total des Progress bar comme tu me l avait suggéré
encore merci
Ps comment faire un tri décroissant
dans une List box sans devoir ajouter des 1 ou 2 (0) devant chaque chiffre
Messages postés
2427
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
3 mai 2021
137
Bonjour !
1) Penses à mettre en résolu ce post ( voir mon message précédent )
2) Pour le Ps une règle de ce forum = nouveau sujet nouveau post à créer !
Cela permet à quelqu'un qui aurait le même problème que toi de trouver aussi la solution
Merci