Initiation msgbox() et inputbox()

Initiation msgbox() et inputbox()

IF

If est l'une des commandes Visual Basic les plus utilisées. La commande If fait partie d'une instruction multiligne.
Voici le format de if :

If  condition  Then
instruction
End If

"If", en anglais, signifie "si". Par exemple,

Si condition remplie alors
choses a faires
Fin de si

Sans s'en apercevoir, on emploie des instruction de type if tous les jours :

-Si (if) je reçois mon chèque, alors (then) je payerai mon loyer dans les temps.
condition instruction

Plusieurs conditions peuvent être spécifiées, c'est pourquoi il existe "elseif" et "else".
Elseif spécifie une autre condition précise. Dans une instruction if, on peut ajouté autant de "elseif" que l'on veut.
Else, quant a lui, spécifie toutes les autres conditions possibles.
Voici le format (à respecter):

If condition1 then
    instruction1
Elseif condition2 then
    instruction2
Else
    instruction3
End If

Vous avez surement remarqué qu'aucune condition n'est spécifiée pour "else". Normal puisque else représente toutes les autres conditions possibles.
Si une instruction if est ouverte dans une autre instruction "if" (ajout de condition...) alors, le "End If" refermera la dernière instruction "If" ouverte.
Nous verrons l'utilisation de l'instruction if plus tard.

MSGBOX()

Msgbox() est une fonction qui affiche une boîte de message (msg : message ; box : boîte). Une boîte de message contient une icône, un message, un titre, et, au moins un bouton de commande. Ce bouton de commande laisse à l'utilisateur de prendre connaissance du message ; lorsqu'il aura finit sa lecture, il cliquera sur le bouton.

Définition : Une boîte de message est une petite boîte de dialogue dont on se sert pour informer un utilisateur à tout moment de l'exécution d'un programme. La boîte de dialogue peut être fermée, grâce au bouton de commande, ainsi que déplacée. Elle ne peut être redimmensionnée.

Les arguments donnés à la fonction msgbox() sont insérés entre les parenthèses (). Ils déterminent l'icône qui sera affichée, le message, le titre, et le nombre de boutons de commande.

Voici le format msgbox :

Msgbox ("message", style,"titre")

Les arguments "message" et "titre" sont placés entre guillemets puisqu'ils représentent une chaîne de caractères.
Style représente l'icône, le bouton etc...

Les arguments de style sont écrits, soit avec une valeur, soit avec une constante nommée.
Par exemple, pour ajouter le bouton "ok", vous placerez dans l'argument style :
- soit vbOkOnly ---> constante nommée
- soit 0 ---> valeur
Seul l'argument de message est obligatoire. Les autres sont optionnels.
Si aucun argument de bouton n'est spécifié, le bouton ok est affiché par défaut.

Voici la liste des boutons :

Valeur | Constante nommée | description

   0          |      vbOkOnly               | Affiche le bouton "Ok" seulement
1 | vbOKCancel | Affiche le bouton "ok" et "annuler"
2 | vbAbortRetryIgnore | bouton "abandonner""rééssayer" "ignorer"
3 | vbYesNoCancel |bouton "oui" "non" "annuler"
4 | vbYesNo |bouton "oui" "non"
5 | vbRetryCancel | bouton "rééssayer" "annuler"

Pour afficher une boîte de message avec comme message "Salut, ça va ?", comme titre "question" et comme bouton "oui" et "non", il faudra taper :

MsgBox ("Salut, ça va ?" ,vbYesNo ,"question")
'ou
MsgBox("Salut, ça va ?" , 4 ,"question")

les deux sont pareils.

Voici la liste des icônes :

Valeur | Constante nommée | description


16 | vbCritical | icône d'erreur (une croix blanche entourée d'un rond rouge)
32 | vbQuestion | icône de question (bulle avec point d'interrogation)
48 | vbExclamation | icône d'avertissement (triangle jaune avec point d'exclamation)
64 | vbInformation | icône d'information (bulle avec la lettre "I")

pour afficher une boite de message avec comme message "Salut, ça va ?"comme titre "question" et comme bouton "oui" et "non" et comme icône, l'icône de question, il faudra taper :

MsgBox ("Salut, ça va ?", vbYesNo + vbQuestion, "question")
ou
MsgBox("Salut, ça va ?", 4 + 32, "question")

les deux reviennent au même.

Vous l'avez compris, dans l'argument de style, pour ajouter une icône a un bouton ou inverse, il faudra mettre un "+" entre.

Chaque boîte de message renvoie une valeur à l'ordinateur. Par exemple, si l'utilisateur clique sur "ok" une valeur spécifique sera renvoyée à l'ordinateur.
Ainsi, c'est grâce à cette valeur renvoyée que l'on pourra utiliser l'instruction if.

D'abord, la liste des valeurs renvoyées :

Valeur | Constante nommée | description

  
1 | vbOK | l'utilisateur a cliqué sur "ok"
2 | vbCancel | sur "annuler
3 | vbAbort | sur "abandonner"
4 | vbRetry | sur "rééssayer"
5 | vbIgnore | sur "ignorer"
6 | vbYes | sur "oui"
7 | vbNo | sur "non"

Ainsi , voici comment afficher une boîte de message avec comme message"Salut, ça va ?" comme titre "question" et comme bouton "oui" et "non"et comme icône, l'icône de question. Et, si l'utilisateur clique sur oui, envoie un message "moi aussi", s'il clique sur non, un message "dommage".
(les phrases avec l'apostrophe au début sont des commentaires, Visual Basic ne les lira pas.)

nomquelconque = MsgBox ("Salut, ça va ?", vbYesNo + vbQuestion, "question")     
'il est obligé de spécifier un nom a la boite de message.

If nomquelconque = vbyes Then
    'si la valeur renvoyée est vbyes alors
    MsgBox ("moi aussi")
Else
    'dans les autres cas alors
    'il est possible de mettre : elseif nomquelconque = vbNo then
    'mais vu que seuls les boutons oui et non sont affichés, si ce n'est pas l'un c'est l'autre...
    MsgBox ("dommage")
End if
'ne jamais oublier de finir son instruction if

Dans cet exemple, les valeurs sont tapées en constante nommées, il était possible de les remplacer par leurs valeurs.

Il existe quelques autres valeurs affectées à l'argument de style, mais elle sont peu utilisées...
Je vous les donne quand même :

Valeur | Constante nommée | description


0 | vbDefaultButton1 | Donne le focus* au premier bouton
256 | vbDefaultButton2 | au deuxième bouton
512 | vbDefaultButton3 | au troisième bouton
768 | vbDefaultButton4 | au quatrième bouton
4096 | vbSystemModal | la boite de message reste toujours au premier plan de l'écran jusqu'à ce que l'utilisateur la ferme.

Définition : Le focus, ou focus de contrôle, désigne le contrôle (dans la fonction MsgBox(), le bouton) actuellement sélectionné. Le focus est un peu comme le "bouton par defaut"...
Visual Basic signale le focus en mettant le contrôle en surbrillance ou en l'entourant d'un cadre pointillé...

Voila, maintenant vous savez a peu près tout sur la fonction msgbox().

Maintenant, nous allons passer a la fonction Inputbox() !

InputBox()

La fonction MsgBox() permet d'envoyer des messages a l'utilisateur, et donne la possibilité, à celui-ci de répondre en cliquant sur des boutons de commande. La suite du code s'exécute en fonction du bouton sélectionné. Mais il arrive que la question à poser ne se réponde pas par "oui", "non", ou autre. On peut alors faire appel à la cousine de MsgBox() : InputBox() !
La fonction InputBox() est une de boîte de message qui s'affiche avec un bouton "ok", "annuler" (comme MsgBox ), et une zone de texte ! (qui permet à l'utilisateur de répondre par une chaine de caractères (comme son âge, adresse etc...) et non de cliquer sur un bouton se limitant à "oui" ou "non".)
Cette combinaison d'une boite de message et d'une zone de texte est appelée boite d'entrée ( en anglais, input-->entrée, box--> boite).
La boite d'entrée n'affiche pas non plus d'icône.
Voici son format :

nomquelconque = inputbox("message", "titre", "defaut", placement X, placement Y)

le "nomquelconque" doit être spécifié si l'on veut placer une instruction "if"....
"message" est l'argument spécifiant le message. (le message est situé entre deux guillemets "")
"titre" est l'argument spécifiant le titre de la boite d'entrée. (le titre est situé entre deux guillemets "")
"defaut" est l'argument indiquant la chaine de caractères qui apparait en premier dans la zone de texte. (defaut est situé entre deux guillemets ""). Il est utilisé pour les reponses évidentes, comme ça l'utilisateur n'a plus qu'a cliquer sur "ok".
placement X et Y indique la position sur l'écran de la boite d'entrée. Je ne m'attarderai pas dessus (et je vous les déconseille) car ils sont difficiles à maitriser...

L'argument "message" est obligatoire, les autres sont optionnels...

Voici comment afficher une boite d'entrée qui demande a l'utilisateur "comment il va", avec comme titre, "question", et comme valeur par défaut "bien". Si l'utilisateur entre la valeur "bien" (valeur par défaut..) un message "moi aussi" apparait. S'il répond "mal" un message "dommage" s'affiche. S'il répond autre chose, un message "plouf" apparait.

nomquelconque = InputBox("Comment vas-tu ?", "question", "bien")
'boite d'entrée...

If nomquelconque = "bien" then
    'si l'utilisateur répond "bien" alors
    'l'argument renvoyé est une chaine de caractères, et donc, est entre guillemets "".
    MsgBox ("moi aussi")
Elseif nomquelconque = "mal" then
'si l'utilisateur répond "mal" alors
    MsgBox ("dommage")
Else
    'si l'utilisateur répond autre chose, alors
    MsgBox ("plouf")
End if

Conclusion

Maintenant, vous maitrisez parfaitement la fonction MsgBox()! et presque autant la fonction InputBox()! ainsi que l'instruction if !

J'espère que bon nombre d'apprentis vont s'enrichir et n'oubliez pas de me faire part de vos commentaires !
Merci de votre attention

A voir également
Ce document intitulé « Initiation msgbox() et inputbox() » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Rejoignez-nous