Comparaison de valeurs

Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 - 19 nov. 2013 à 13:32
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 - 20 nov. 2013 à 21:02
Bonjour,
Je dois comparer 3 valeurs affichées dans 3 textbox différentes et tout simplement afficher la valeur de la plus petite d'entre elles dans un nouveau textbox.
En fouillant un peu et avec aussi un peu d'aide, il en est ressorti cette sub :
Private Sub compare()
Imports System.Linq.Enumerable


Dim ListeValeur As System.Collections.Generic.List(Of Integer) = New System.Collections.Generic.List(Of Integer) From {Integer.Parse(P_SPIMAGE2.Text), Integer.Parse(SPIMAGE2P.Text), Integer.Parse(P2_SPIMAGE2.Text)}
Dim mini As Integer

If ListeValeur.Contains(0) Then
ListeValeur.Remove(0)
mini = ListeValeur.Min
ListeValeur.Add(0)
Else
mini = ListeValeur.Min
End If
MsgBox(mini)
End Sub

J'ai toutefois encore un souci :
- Je voudrais simplement retourner la valeur min dans un textbox
- MsgBox n'est pas reconnu car soit disant non déclaré ...

Pourrais je avoir un début de piste ?

9 réponses

Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
19 nov. 2013 à 14:02
Ps : l'import ne se trouve pas dans la sub bien sur mais avant le public class
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
19 nov. 2013 à 14:09
Bonjour,

MsgBox -> MessageBox.Show

Intéresses-toi au mot clé "Function"
0
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
Modifié par Attila54 le 19/11/2013 à 15:32
alors messagebox.show me donne la même chose
Si tu veux me dire de faire une fonction avec un return a la place d'une sub, cela ne fonctionne pas plus ...

Je voudrais juste comprendre pourquoi j'ai l'erreur :
Erreur	1	'MsgBox' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
--
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
19 nov. 2013 à 19:20
As-tu tout remplacé les MsgBox par MessageBox.Show ?
Quel est ton type de projet ?
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 19/11/2013 à 17:49
Salut

Private minval As Integer

Private Function FindMin() As Boolean
Dim result(2) As Integer
If Integer.TryParse(textbox1.text , result(0)) AndAlso Integer.TryParse(textbox2.text, result(1)) AndAlso Integer.TryParse(textbox3.text, result(2)) Then
Array.Sort(result)
minval = result(0)
Return True
Else
Return False
End If
End Function

' pour utiliser
If FindMin() Then
TextBoxmin.text = minval.ToString
Else
MessageBox.Show("one of textbox has no number")
End If
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
19 nov. 2013 à 19:18
Pour le minimum, il y a Math.Min.
0

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

Posez votre question
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
Modifié par Attila54 le 20/11/2013 à 10:33
Re a vous 2
Alors j'ai fait ceci shayw
  Private Function FindMin() As Boolean
Dim result(2) As Integer
If Integer.TryParse(textbox1.text , result(0)) AndAlso Integer.TryParse(textbox2.text, result(1)) AndAlso Integer.TryParse(textbox3.text, result(2)) Then
Array.Sort(result)
minval = result(0)
Return True
Else
Return False
End If
End Function
avec le nom de mes 3 textbox

puis une sub :
Private Sub affiche()
If FindMin() Then
matextboxresult.text = minval.ToString
Else
MessageBox.Show("one of textbox has no number")
End If
End Sub

j'appelle donc affiche() a l'endroit adequat pour avoir le resultat dans mon textbox MAIS ou que soit positionné affiche(), j'ai le MessageBox et jamais de resultat

En sus j'ai oublié une condition.
Si une textbox de la liste de comparaison affiche 0.00 on ne la prend pas dans le comparatif (si 2 textbox affichent 0.00 on ne prend pas les 2 ...)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
20 nov. 2013 à 14:34
Bonjour

j'appelle donc affiche() a l'endroit adequat pour avoir le resultat dans mon textbox MAIS ou que soit positionné affiche(), j'ai le MessageBox et jamais de resultat

cela dépend où tu appelles affiches
si tu appelles avant d'avoir entrer des valeurs dans les trois textbox tu auras le message
donc il faut l'appeller après avoir introduit une valeur dans chaque
textbox
je ne sais pas comment tu procèdes
après avoir rentré une valeur dans textbox1,textbox2,textbox3
as tu un bouton pour valider ?

En sus j'ai oublié une condition. etc....

c'est le dessert ?
0
Attila54 Messages postés 409 Date d'inscription jeudi 30 juin 2005 Statut Membre Dernière intervention 21 novembre 2013 1
Modifié par Attila54 le 20/11/2013 à 16:04
lol oui et pour moi il est indigeste.
Bon serieux, je suis passé en mode pas a pas jusqu'à voir les textbox1,textbox2,textbox3 s'afficher bien sur, j'ai ensuite lancé affiche () un peu plus loin dans le form.
En fait le problème des valeurs nulles c'est que comme textbox1,textbox2,textbox3 contiennent des valeurs négatives ou nulles, la plus petite des 3 sera, en valeur absolue, la plus grande des 3. Dans le cas ou le textbox est à 0.00, cela change tout...

Non je n'ai pas de bouton valider, les valeurs des textbox 1, 2 et 3 sont calculées et affichées automatiquement, et donc après l'affichage, c'est la que je dois les comparer toujours automatiquement, pour afficher .... automatiquement la plus petite dans matextboxresult.

--
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
20 nov. 2013 à 17:22
la plus petite des 3 sera, en valeur absolue,la plus grande des 3.

tu as un exemple
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 nov. 2013 à 17:38
Bonjour, cs_ShayW,
il s'exprime mal pour simplement dire, par exemple, que -3 est plus petit que -2
On se demande pourquoi il travaillerait avec des valeurs absolues pour comparer deux numériques !
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
20 nov. 2013 à 19:53
Bonjour
ah oui merci d'avoir expliquer le plus petit negatif est le plus grand en valeur absolu
pourquoi il travaillerait avec des valeurs absolues
parce qu'il ne sait peut etre pas que -3 < -2
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
20 nov. 2013 à 20:07
clin d'oeil
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
Modifié par cs_ShayW le 20/11/2013 à 21:23
Private minval As Double

Private Function FindMin() As Boolean
Dim result(2) As Double
If Double.TryParse(textbox1.text, result(0)) AndAlso _
Double.TryParse(textbox2.text, result(1)) AndAlso _
Double.TryParse(textbox3.text, result(2)) Then
Array.Sort(result)
If result(0) <> 0 Then
minval = result(0)
ElseIf result(1) <> 0 Then
minval = result(1)
ElseIf result(2) <> 0 Then
minval = result(2)
Else
Return False
End If
Return True
End If
Return False

End Function
0
Rejoignez-nous