cs_mathben
Messages postés30Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention10 décembre 2006
-
9 déc. 2006 à 20:26
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
10 déc. 2006 à 21:30
Bonjour, j'ai cherché comment déterminer que l'utilisateur a appuyé sur telle touche.
Savez-vous comment déterminer si il a appuyé sur ok, ou un autre bouton!
Deuxième question, comment je pourrais modifier les boutons? Changer l'écriture dedans, est-ce que c'est faisable?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 déc. 2006 à 20:36
Salut,
pour ton 1 :
Sub Exemple_InputBox()
Dim Sboub As String
Sboub = InputBox("Test")
If Sboub = vbNullString Then
MsgBox "Vous n'avez rien rentré ou cliquez sur annuler", vbCritical
Else
MsgBox "Donnée prise en compte", vbInformation
End If
End Sub
If Sboub = vbCancel Then
MsgBox "Vous avez cliquez sur annuler", vbCritical
ElseIf Sboub = vbOK Then
MsgBox "Vous avez cliquez sur OK", vbInformation
End If
End Sub
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 déc. 2006 à 21:06
En français (et en gros..), ce sont les constantes résultant du MsgBox.
(vbOK, vbCancel, vbYes, vbNo, etc)
Appuie sur F2 quand tu es dans VB, et tape vbMsgBoxResult dans Rechercher.
Ca doit apparaitre dans la liste, d'autant plus que cette constante ne peut fonctionner sans la fonction MsgBox (et elle se trouve dans la bibliothèque VBA)
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 9 déc. 2006 à 21:03
"The VbMsgBoxResult enumeration contains constants used to identify which button was pressed on a message box displayed using the MsgBox function. These constants can be used anywhere in your code."
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_mathben
Messages postés30Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention10 décembre 2006 9 déc. 2006 à 21:14
Ok, mais soit que j'ai mal formulé ma première question ou autre chose...
If Sboub = vbNullString Then
MsgBox "Vous n'avez rien rentré ou cliquez sur annuler", vbCritical
Else
MsgBox "Donnée prise en compte", vbInformation
End If
ici,il regarde si il a rien marqué?
Je voudrais savoir si il appuie sur annuler, je dois le faire sortir de la boucle, car lorsqu'il fait cancel, il passe a la deuxième notes.
je vous montre mon code ^^
<hr size="2" width="100%" />
Dim siErreur As Boolean = False
texteErreurNbÉtudiant.Text = ""
If Not IsNumeric(texteNbÉtudiants.Text) Or texteNbÉtudiants.Text.IndexOf(",") > -1 Then
texteErreurNbÉtudiant.Text = ("Vous avez fait une erreur." & vbCrLf & _
"Vous devez mettre un nombre entier positif.")
siErreur = True
ElseIf IsNumeric(texteNbÉtudiants.Text) Then
If CDbl(texteNbÉtudiants.Text) < 0 Then
texteErreurNbÉtudiant.Text = ("Vous avez fait une erreur." & vbCrLf & _
"Vous devez mettre un nombre entier positif.")
siErreur = True
End If
End If
If siErreur = False Then 'on rentre les notes
ReDim note(CInt(CDbl(texteNbÉtudiants.Text) - 1))
texteNbÉtudiantsCopy.Text = CStr(note.Length) 'copy du nombre d'élève dans la sections nombres d'élèves
For k As Integer = 0 To note.Length - 1
Static boutonImputBox As String
Dim boutonImputBoxVérifie As ms
boutonImputBox = InputBox("La note de l'étudiant " & k + 1 & " est : ")
If Not IsNumeric(boutonImputBox) Then
MsgBox("Vous avez fait une erreur." & vbCrLf & "Entrer un nombre.", MsgBoxStyle.OkOnly)
k = k - 1
ElseIf CDbl(boutonImputBox) < 0 Or CDbl(boutonImputBox) > 120 Then
MsgBox("Vous avez peut-être fait une erreur." & vbCrLf & "Vous avez marqué " & note(k) & " .")
ElseIf boutonImputBox = vbNullString Then
msgBox(
End If
Next
End If
<hr size="2" width="100%" />
il n'est pas terminé, il a encore des modifications (je suis bloqué un peu)
merci
<hr size="2" width="100%" />c'est moi, mathben!
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 déc. 2006 à 21:19
Si il fait Cancel ou s'il ne rentre rien, c'est la même opération.
Dans tout les cas t'as pas tes données donc tu peux sortir de la boucle.
If Sboub = vbNullString Then
MsgBox "Vous n'avez rien rentré ou cliquez sur annuler", vbCritical
Else
MsgBox "Donnée prise en compte", vbInformation
End If
@++
<hr size ="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 déc. 2006 à 21:35
jmfmarques, j'ai vu ton lien, attention, aucun moyen de dissocier l'appuie sur cancel ou sur OK avec rien de renseigné.
Cancel retourne une chaine de caractère de type vbNullString, donc aucun espace.
N'hésite pas : MsgBox "-" & InputBox("Test") & "-"
Le résultat sera -- et non - -.
@++
<hr size="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 9 déc. 2006 à 21:48
Tiens !
Pas chez moi...
as-tu essayé ?
Private Sub Command1_Click()
reponse = InputBox("tapez quelque chose", "essai de controle de cancel", " ")
If reponse = "" Then
MsgBox "vous avez appuyé cancel"
ElseIf reponse = " " Then
MsgBox "vous avez appuyé sur OK sans renseigner"
reponse = ""
Else
MsgBox "vous avez frappé " & reponse
End If
End Sub
La solution d'Econs est encore plus fine et marche également...
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 9 déc. 2006 à 21:53
Bien vu, subtil et on peut dissocier, du coup.
Attention tout de même, il faudra faire, du coup, un LTrim$ en cas de réponse :
Private Sub Command1_Click()
reponse = InputBox("tapez quelque chose", "essai de controle de cancel", " ")
If reponse = "" Then
MsgBox "vous avez appuyé cancel"
ElseIf reponse = " " Then
MsgBox "vous avez appuyé sur OK sans renseigner"
reponse = ""
Else
MsgBox "vous avez frappé " & LTrim$( reponse)
End If
End Sub
En tout cas, merci, je n'avais pas pensé à cela
Allez, bonne nuit à tous
@++
<hr size ="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
cs_mathben
Messages postés30Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention10 décembre 2006 10 déc. 2006 à 08:19
Votre affaire est cool, sauf que j'ai toujours un problème. La réponse, je dois vérifier que se soit un nombre, donc not isNumeric(note)
Lorsqu'il a un espace, il dit que ce n'est pas un nombre (au début)
Ensuite, il a un deuxième problème, ce n'est pas jolie écrire et a chaque fois, il a un espace devant ton nombre, on voit qu'il a un espace, ce n'est pas jolie et ça peut être fatiguant.
Pour continuer, il peut y avoir un problème, ici on a caché le problème, mais ça peut créer un bug, si un utilisateur fait le con et il met un espace devant, peu importe la facon que j,arrange mon code ( que je ne mette pas de isNumeric()), il va avoir un problème dans mon code, il va sortir de la boucle que moi, je veux lui dire qu'il a fait une erreur.
Je me suis dit alors que se serait plus simple en créer un.
Comment je peux faire pour en créer un? Je connais pas beaucoup vb (je suis habitué en flash, se serait tellement facile faire ce que je veux faire!).
Dite moi svp comment je peux créer un ImputBox manuellement et définir des variables à mes boutons, donc la je pourais déterminer sur quel bouton il a cliqué, et aussi, s'il fait une erreur, je ne serai pas obligé de faire appel a un msgBox qui apparait dans la face et qui peut stressé les vieux...(je crois...)
Donc, dès qu'il appuie sur ok, j'analyse se qu'il a écrit et je lui dit si il a bon, ou sinon je lui dit de recommencer. S'il veut quitter, c'est simple, tu peux annuler.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 10 déc. 2006 à 08:48
Pour créer une InputBox, il suffit de créer une Form, tu y places 2 boutons (OK, Annulé), un Label et un TextBox.
Recherche sur codyx "textbox numérique", tu aura le code pour ne traiter que les caractères numériques
@++
<hr width="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 déc. 2006 à 08:50
Un cadre (Frame) dans lequel tu places tout ce que tu veux (labels, boutons et une textbos pour la saisie)
Dans l'événement keypress de la textbox : tu gères directement les entrées avec isnumeric (nombreux exemples sur ce forum)
Il ne te reste plus qu'à jouer avec la propriété visible de ce cadre (True ou False selon que tu veux l'afficher ou non).
Attention : à chaque fois que tu l'affiches : remettre à "" ce qu'il y a dans la textbox.
Astuce : rien ne t'empêche de paramètrer les labels etc... de ce cadre pour t'en servir, au besoin, à plusieurs fins possibles et te débarrasser ainsi, une fois pour toutes, de tes inpuboxes.
Tout celà est on ne peut plus enfantin à mettre en oeuvre.
Amen.
cs_mathben
Messages postés30Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention10 décembre 2006 10 déc. 2006 à 18:11
Merci, je commence à déveloper mon nouveau Form et je me suis dit : "Comment je vais pouvoir l'appeller? Lorsque je clic sur mon bouton "Entrer les notes", je veux faire apparaitre le form."
Ensuite, c'est quoi codyx, ou le trouver?
C'est quoi un cadre?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 déc. 2006 à 18:39
"Comment je vais pouvoir l'appeller? Lorsque je clic sur mon bouton "Entrer les notes", je veux faire apparaitre le form."
Ta question, Mathben, est pour le moins très inquiétante....
As-tu au moins commencé (c'est le début du début) à apprendre VB ? (aide en ligne, tutos sur ce forum...)
Va voir dans l'aide en ligne ce que sont Show, Load, Hide, etc... (c'est un minimum !)
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 10 déc. 2006 à 21:28
Salut,
Codyx c'est la boite à snippets (snippet = morceau de code / fonction).
Ces fonctions sont soumises à Validation par les Admins, elles sont censées (à 80% des cas) être optimisée et performante.
Tu peux y accéder via ce lien : [www.codyx.org www.codyx.org]
Sur la page Sommaire , tu retrouves les 5 derniers snippets ajoutés.
@++
<hr size ="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--