Inputbox. Paramétrage de la fonction annuler

nono78220 Messages postés 181 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 28 octobre 2010 - 6 déc. 2006 à 10:31
cs_neotof Messages postés 75 Date d'inscription jeudi 12 août 2004 Statut Membre Dernière intervention 3 décembre 2012 - 18 janv. 2007 à 18:56
Bonjour à tous,

Je débute en visualbasic 5.0. Je réalise un petit programme dans lequel je demande aux utilisateurs de remplir des valeurs numériques dans des text box, afin de réaliser des calculs.
J'ai 2 questions:
1/ comment puis je programmer la condition suivante: si la valeur rentrée dans la text box est différente d'une valeur numérique alors laisser le curseur sur cette text box
2/ si la text box n'est pas remplie alors attribuer la valeur numérique 0. J'ai ma petite idée pour cette condition mais je désirerais connaitre votre avis.

Par ailleurs, j'ai utilisé la fonction input box au démarrage du programme. Cependant, le controle "ANNULER" ne fonctionne pas. Pourquoi et y a t'il la possibilité de le coder ? Peut-on aussi définir la police du titre et du message ?

Merci d'avance pour vos conseils.

7 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
6 déc. 2006 à 10:37
Salut en réponse au 1/:

While Not IsNumeric(a)
a=inputbox()
Wend

Pour annuler: (source de econs) et le petit 2/:
http://www.vbfrance.com/codes/DETECTER-CANCEL-SUR-INPUTBOX_31308.aspx

Dim
sTemp As
String
 
 sTemp =
InputBox
(<var>"Appuyer sur OK ou Cancel, mais sans taper de texte dans l'InputBox."</var>) 
If
StrPtr(sTemp) = 0
Then
 
a=0 
End
If


 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
6 déc. 2006 à 10:39
Salut,







1/ comment puis je programmer la condition suivante: si la valeur
rentrée dans la text box est différente d'une valeur numérique alors
laisser le curseur sur cette text box.



Voir sur le site les très nombreuses sources de "Texbox numériques".





2/ si la text box n'est pas remplie alors attribuer la valeur numérique 0.



Quand tu voudras transformer le texte en chiffre, en utilisant a priori la méthode Val(), Val(RienDuTout) = 0 par défaut. Il n'y a donc pas de problème.





Par ailleurs, j'ai utilisé la fonction input box au démarrage du
programme. Cependant, le controle "ANNULER" ne fonctionne pas. Pourquoi
et y a t'il la possibilité de le coder ?



Voir la source que j'ai déposée ICI





Peut-on aussi définir la
police du titre et du message ?



Non. Sauf en fabriquant un contrôle InputBox perso. Et dans ce cas, le problème du bouton Annuler ne se posera même plus.







Petit rappel : un lecture du règlement t'aurais permis de comprendre comment trouver toutes les solutions à tes questions rapidement. Ces réponses ont déjà été données de très nombreuses fois.





Manu


--------------------------------------------------------------------------------------------
Avant de poster un message, n'oubliez pas de consulter le reglement.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 déc. 2006 à 18:11
Alors, nono ?

Toujours pas trouvé l'astuce ?

Elle est pourtant simple ! Allez ! Essaye :

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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 déc. 2006 à 18:13
Petite correction de sagesse :

Pour le else :

Else
    MsgBox "vous avez frappé " & trim(reponse)
  End If
0

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

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
7 déc. 2006 à 18:19
Que tu aurais pu trouver seul !

Mais la solution de Econs est bien plus fine .
0
nono78220 Messages postés 181 Date d'inscription dimanche 3 décembre 2006 Statut Membre Dernière intervention 28 octobre 2010
8 déc. 2006 à 10:59
Bonjour à tous,

Tout d'abord merci pour vos propositions. Vos solutions sont enrichissantes car elles permettent d'apprendre de nouveaux codes.


Manu, mille excuses car je n'avais pas lu le règlement. J'ai pu trouver par la suite les thèmes qui m'intéressaient.

Je n'ai pas eu beaucoup de temps cette semaines mais voici ce que j'ai fait:


1/ j'ai supprimé inputbox (pas très pratique finalement) pour la remplacer par une feuiille personnalisée


2/ j'ai utilisé IsNumeric pour ma question n°1. De souvenir voici le code:


dim vntReponse as variant
vntReponse = txtReponse.text
if not IsNumeric(vntReponse) then
msgBox "Veuillez rentrer des chiffres numériques"
txtReponse = ""
txtReponse.setfocus
else
frmFrm1.show
load frm2
end if

J'ai eu d'autres solutions pour lesquelles j'aurais des questions à vous demandez, notamment sur la fonction key_press insérée dans private_sub. J'y reviendrais, et encore merci.

Nono
0
cs_neotof Messages postés 75 Date d'inscription jeudi 12 août 2004 Statut Membre Dernière intervention 3 décembre 2012
18 janv. 2007 à 18:56
Bonsoir j ai essayer d'utiliser strptr avec une variable dynamique (tableau), mais quand je fais cancel ca n'anulle pas l'application :

Voici une partie de mon code ou je voudrais utiliser strptr

For i = 1 To int_nbr_eleves
   
    Do
        int_points(i) = InputBox("Veuillez entrez les points de l'élève n°" & " " & i & " " & Chr(13) & "Minimum 0%, maximum 100%")
       
            If StrPtr(int_points(i)) = 0 Then

                MsgBox "Vous avez arrété l'enregistrement "
                Exit Sub
        
            End If
       
    Loop While int_points(i) = 0 Or int_points(i) > 100

Next i

Je suis newbee ca fais depuis peu que j'apprend la programmation donc soyer indulgent
0
Rejoignez-nous