VbCancel et select case

Lolyshia Messages postés 5 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 9 novembre 2008 - 13 oct. 2008 à 09:45
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 - 14 oct. 2008 à 04:41
Bonjour, j'essaye de programmer un bouton vbcancel pour que chaque fois que je click dessus il y a un message qui apparait qui dit bonne journee et qu'il ferme le programme. Par contre, si ok est clicquer (sans qu'il y ait une reponse ecrit dans l'espace demandé) il y aura un message qui apparait et qui dit: Ressayer de nouveau. Voici mon programme. Merci de votre aide

Private Const MENU As String _
= "(1 ou E)" & vbTab & vbTab & " : ÉCHANGE THERMIQUE" & vbCrLf & vbCrLf _
& "(2 ou C)" & vbTab & vbTab & " : CRYPTAGE" & vbCrLf & vbCrLf _
& "(annuler)" & vbTab & ": Pour quitter le programme"

Sub Procedure_Demarrage()


Dim choix As String

Do

choix = InputBox(MENU, "Choix de programme")
choix = UCase(choix)
Select Case choix

Case 1, "E"
Call Module_Echange_thermique.Programme_1
If MsgBox("Voulez-vous réessayer un autre programme?!", vbYesNo) = vbYes Then
Call Module_Menu.Procedure_Demarrage

Else
MsgBox ("Fermeture du programme d'échange thermique, nous vous souhaitons bonne journée")
End If

Exit Do

Case 2, "C"
Call Module_Cryptage.Programme_2

If MsgBox("Voulez-vous réessayer un autre programme?!", vbYesNo) = vbYes Then
Call Module_Menu.Procedure_Demarrage

Else
MsgBox ("Fermeture du programme de cryptage, nous vous souhaitons bonne journée")
End If

Exit Do

Case "ANNULER"
Call MsgBox("BONNE JOURNÉE!") 'Pour quitter le programme

Exit Do

Case Else
Call MsgBox("Erreur! Réessayez à nouveau!", vbCritical)


End Select

Loop While choix <> "ANNULER"


End Sub

3 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
13 oct. 2008 à 10:15
Salut,

Je comprends pas bien ton truc...
Pourquoi ne pas créer une form personnalisée à laquelle tu affectes une zone de texte et des boutons de commande
La zone de texte est ta zone de saisie que tu peux tester par : if text1.text = vbnullstring then...
Et tes boutons de commande qui permet le lancement de tes procedures ou d'annuler. Sachant que tu peux le faire en un groupe de commande et donc à l'aide d'un select case pour le lancement de chaque.
Voilà.
Sinon, il me semble que ton code comporte des erreurs...
Bon courage
S.L.B.
<hr />-- Le règlement tu liras -- Des recherches tu feras -- Le style SMS tu banniras --
-- De la validation pertinente tu feras -- Du respect tu auras -- <
0
Lolyshia Messages postés 5 Date d'inscription dimanche 28 septembre 2008 Statut Membre Dernière intervention 9 novembre 2008
13 oct. 2008 à 16:57
Salut

je comprend pas ce que tu veux dire de créer une form personnalisé. En faite j'utilise EXCEL avec le macro pour démarrer mon programme. Je n'utilise pas visual basic directe ou que je met des boutons et tout. Sinon c'est de cette maniere qu'on m'a apprit et il fonctionne sauf pour le bouton CANCEL
Car lorsque je pars mon programme il y une boite ou il demande mes choix et puis il y a un bouton OK et Cancel par default. si je pese OK ou Cancel ca va dire une message d'erreur. Mais ce que je veux c'est que Cancel a un message pour dire au revoir et c'est un end sub.
Sinon comment on fait pour avoir seulement OK comme bouton dans un inputbox?

merci
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
14 oct. 2008 à 04:41
Bonjour Lolyshia

Une input box n'est pas très bien adaptée à ton cas.

En effet, il est visiblement très important pour ton programme de savoir la manière dont l'utilisateur a fermé l'input box : en cliquant sur les boutons "Annuler" ou "Ok", ou bien par les touches Enter ou Escape.

Or l'input box ne renvoie strictement aucune information fiable sur la manière dont l'input box a été fermée. Dans l'aide en ligne de l'input box, ils disent ceci : Si l'utilisateur clique sur OK ou appuie sur ENTRÉE , la fonction InputBox renvoie le texte contenu dans la zone de texte. Si l'utilisateur clique sur le bouton Annuler, la fonction renvoie une chaîne de longueur nulle (""). Quant à la touche Escape, ils n'en parlent pas.

C'est pourquoi, je te suggère de suivre le conseil de Lilith212, et de créer ton propre formulaire : dans la fenêtre Visual Basic, insertion > UserForm

Si malgré tout tu conserves l'input box, je te conseille de mettre un msgbox "Voulez-vous vraiment quitter l'application ?" lorsque ton code estime que l'utilisateur a cliqué sur Annuler.

Je te souhaite une bonne soirée (là où je vis, il est 17 h).
0
Rejoignez-nous