Valeur par defaut dans une listbox [Résolu]

Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
- - Dernière réponse : Attila54
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
- 1 déc. 2010 à 18:53
Bonjour,
J'ai dans un petit prog, une lisbox dont les valeurs vont de 0.00 a -1.5 par increments de 0.1 (0.0; -0.1; -0.2 ... etc...)
Cette listbox me permet se selectionner une valeur et faire des calculs avec cette valeur

Private Sub Command4_Click()
If List3.Text = "-0.0" Then
           Text48.Text = Format(CCur(Text45.Text) * (0#), "0.00")
           Text36.Text = Format((CCur(((Sqr((Text15.Text) + 4)) * Text27.Text) / 2) + Text35.Text), "0.00")
           Text46.Text = Format(CCur(((Text27.Text) + (CCur(Text37.Text)))), "0.00")
... etc

Je veux que par défaut (sans rien selectionner, la valeur prise soit "-1.0", j'ai fait :


Private Sub Command4_Click()
List3.Selected "-1.0" = True
If List3.Text = "-0.0" Then
           Text48.Text = Format(CCur(Text45.Text) * (0#), "0.00")
           Text36.Text = Format((CCur(((Sqr((Text15.Text) + 4)) * Text27.Text) / 2) + Text35.Text), "0.00")
           Text46.Text = Format(CCur(((Text27.Text) + (CCur(Text37.Text)))), "0.00")
... etc

Rien ne fonctionne .... ou est l'erreur svp ???

Merci
Afficher la suite 

Votre réponse

20/34 réponses

Meilleure réponse
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
3
Merci
Salut Attila54
Vu que selon la valeur les calculs sont différents je te propose ceci:
Utilises le Select Case pour ton problème
Tu dois mettre autant de Case qu'il y a de valeurs différentes dans ta Listbox
Après chaque Case tu mets le code de traitement de cette valeur uniquement
C'est plus élégant et plus pro que tout une ribambelle de If ..... Then .....Else

Dim nombre As Single ' variable qui contient la valeur
If List1.ListIndex = -1 Then
nombre = -1 ' valeur par défaut
Else
nombre = Val(List1.List(List1.ListIndex)) ' valeur sélectionnée
End If 
Select case nombre
    Case -1
        Ton calcul pour cette valeur
    Case -1.5
        Ton calcul pour cette valeur 
    Case ......

    Case .......
End Select


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
3
Merci
Salut attila54

If List2.ListIndex = -6.5 Then ' faux
If List2.ListIndex = - 1 Then ' correct

Listindex te donne le numéro de la ligne que tu as sélectionnée dans la listbox. Si tu n'as rien sélectionné Listindex prend la valeur -1


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_Galain
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Salut
essayes avec
List1.Selected(10) = True
Commenter la réponse de cs_ShayW
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Bon alors effectivement cela fonctionne ... mais a moitié.
A savoir :
- si je veux comme valeur -6.5, et qu'en extrapolant, je mets
List1.Selected(-65) = True

ca ne fonctionne pas
- autrement, si maintenant je veux selectionner à la main une autre valeur que celle par defaut
eh bien la valeur reste bloquée a celle par defaut ...
Commenter la réponse de Attila54
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
0
Merci
Salut
Je suppose que Command4 est le bouton qui te permet de faire le calcul
Il faut d'abord vérifier si on a sélectionné une valeur dans la listbox ( voir propriété Listindex)
Si List3.Listindex vaut -1 on a rien sélectionné
A partir de là

If List3.Lidtindex = - 1 then
' valeur par défaut = -1.0
else
' valeur sélectionnée
End if
Ensuite tu fais le calcul avec la valeur


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
0
Merci
If List3.Listindex = - 1 then ( erreur de frappe dans le post précédent)

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
merci bien, je teste tout cela des demain
Commenter la réponse de Attila54
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
euh je ne vois aucune propriete listIndex dans les proprietes de ma list ceci explique peut être cela
Commenter la réponse de Attila54
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
Salut
listindex n'apparait dans la fenetre des proprieté du listbox sur ta form
mais dans la liste des attributes et methode
ecris listbox1. dans la liste qui s'ouvre cherches listindex
Commenter la réponse de cs_ShayW
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
bon bah je dois être particulièrement hermetique la car je cherche la liste des attributs et methodes sans succés
Commenter la réponse de Attila54
Messages postés
3244
Date d'inscription
jeudi 26 novembre 2009
Dernière intervention
13 décembre 2018
0
Merci
j'ai du mal expliqué
Non tu n'es pas hermetique pas encore LOL
On va faire la mise au point LOL
ou c'est moi qui dérailles
c'est bien du vb6 ?
si tu écris
if listbox1. il n'y a pas une liste qui s'ouvre?
où tu peux choisir,cherches listindex
donc
if listbox1.listindex = -1
Commenter la réponse de cs_ShayW
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Mais j'écris "if listbox1." ou ???
et oui c'est bien du vb6
Commenter la réponse de Attila54
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
0
Merci
Salut Attila54

Une première chose : tu es bien sous VB 6.0 et non non VBA pour Excel
si c'est VB 6.0 et que ta listbox se nomme List3 en tapant "if List3.listindex = -1 then" cela devrait passer.
Attention parfois en te répondant on ne nomme pas forcement la contrôle avec le même nom que celui que tu as donné. Ceci explique le fait que tu n'as pas de liste déroulante une fois écrit "if Listbox1." car ton contrôle ne s'appelle pas Listbox1 mais List3 comme dans ton code

Listindex contient le numéro de l'élément sélectionné dans une Listbox (attention le premier élément est le numéro 0). Si aucun élément n'est sélectionné Listindex vaut -1

Tu as toutes les cartes en main




La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
merci bien du complément, je teste demain, mais quand tu me dis
if List3.listindex = -1 then
je comprends que je tape cela dans mon code dans la zone de mon command_button. J'espère être dans le vrai
Commenter la réponse de Attila54
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
0
Merci
Exact : c'est bien dans la zone de code du Command_Button

En français cela donne

Si aucune valeur dans la liste n'est sélectionnée
on prend la valeur par défaut
sinon
on prend la valeur sélectionnée
fin du si

ensuite on fait le calcul

On retrouve bien le If ... Then .... Else de VB 6.0

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
Bon alors j'ai fait une anerie je pense car cela ne fonctionne toujours pas.
Mon code initial est de la forme :
If List3.Text = "-0.0" Then
           Text33.Text = .............
           Text47.Text = .............
           Text48.Text = .............
           Text52.Text = .............
           Text49.Text = .............
           Text38.Text = .............
End If
If List3.Text = "-0.1" Then
           Text33.Text = .............
           Text47.Text = .............
           Text48.Text = .............
           Text52.Text = .............
           Text49.Text = .............
           Text38.Text = .............
End If
If List3.Text = "-0.2" Then
Text33.Text = .............
           Text47.Text = .............
           Text48.Text = .............
           Text52.Text = .............
           Text49.Text = .............
           Text38.Text = .............
End If
End sub


si je fais
If List3.listindex = -1 then
   List3.Selected "-1.0" = True
End If
Else
  If List3.Text = "-0.0" Then
           Text33.Text = .............
           Text47.Text = .............
           Text48.Text = .............
           Text52.Text = .............
           Text49.Text = .............
           Text38.Text = .............
  End If
  If List3.Text = "-0.1" Then
           Text33.Text = .............
           Text47.Text = .............
           Text48.Text = .............
           Text52.Text = .............
           Text49.Text = .............
           Text38.Text = .............
  End If
  If List3.Text = "-0.2" Then
           Text33.Text = .............
           Text47.Text = .............
           Text48.Text = .............
           Text52.Text = .............
           Text49.Text = .............
           Text38.Text = .............
  End If
End sub


cela ne fonctionne toujours pas
Commenter la réponse de Attila54
Messages postés
540
Date d'inscription
mardi 4 août 2009
Dernière intervention
1 février 2013
0
Merci
Bonjour!!
t'as pas besoin de faire:
  If List3.Text = "-0.0" Then

tu accèdes à tes éléments à partir de leur index(index commençant par 0)
ton 1er élément:0.0 correspond à l'index 0
ton 2nd:-0.1 correspond à l'index 1et ainsi de suite...

donc si tu veux par exemple que l'élément "0.0" soit sélectionné tu n'as qu'à faire:
List3.ListIndex = 0
et le tour sera joué...

au lieu de faire
  If List3.Text = "0.0" Then ...


tu n'as qu'à faire
  If List3.ListIndex = 0 Then ...


En éspérant avoir été clair!!
Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Commenter la réponse de NSUADI
Messages postés
409
Date d'inscription
jeudi 30 juin 2005
Dernière intervention
21 novembre 2013
0
Merci
je comprends bien ce que tu me dis, ce que je ne vois pas, c'est comment dire que par défaut, c'est a dire sans selectionner quoi que ce soit dans ma lisBox comme valeur, ce soit la valeur "-1.00" qui soit automatiquement selectionnée.
Commenter la réponse de Attila54
Messages postés
540
Date d'inscription
mardi 4 août 2009
Dernière intervention
1 février 2013
0
Merci
eh ben dans le load de ton formulaire tu mets:
List3.ListIndex = index 'index de "-1.00" dans la listebox


Ce qui compte,ce n'est pas ce qu'on a mais plutôt ce que l'on fait avec ce qu'on a...

Visual Basic .Net is the best
and vb6.0
Commenter la réponse de NSUADI
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Dernière intervention
24 juillet 2013
0
Merci
Salut
voici le début du code de ton Command_button
dim valeur as single
if list3.listindex = - 1 then
valeur = -1
Else
valeur = val(list3.list(list3.listindex))
end if


ensuite tu n'as plus qu'à faire tes calculs avec la valeur


La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
Commenter la réponse de cs_Galain

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.