Tutoriel 11 : MsgBox - Instruction ou fonction ?

Gilbert Miralles

- Titre : Tutoriel 11 : MsgBox - Instruction ou fonction ?

- Auteur : Gilbert Miralles

- Parution : 18 mars 2003

- Licence : Copyright ® 2000 Gilmir. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Introduction ♪

- Prochain tutoriel

I - Introduction ♪

Cette instruction très utilisée dans Visual Basic permet de poser une question à l'utilisateur au travers d'une boîte de dialogue.
Celle-ci peut être paramétrée en définissant le nombre de boutons poussoir, l'icône de la boîte et le bouton par défaut, c'est à dire celui qui sera enfoncé quand vous appuyez sur la touche « Entrée ».
La syntaxe de l'instruction MsgBox est la suivante :

Variable = MsgBox(« Message », Type, « Titre de la fenêtre »)

- Variable : Variable de type Entier (Integer) recevant la valeur du bouton.

- Message : Chaîne de caractères affichée comme message dans la boîte de dialogue.

- Type : Expression numérique qui contrôle les boutons et les icônes à afficher.

- Titre : Expression chaîne affichée dans la barre de titre de la boîte de dialogue.

Le paramètre Type représente l'addition de plusieurs constantes intégrées de Visual Basic.

Pour répondre à la question posée, MsgBox est utilisée en Instruction lorsque la syntaxe utilisée n'attend pas une réponse du système par exemple :

Instruction :
MsgBox Message$, 16 Titre$ Dans ce cas nous avons utilisé une instruction de VB.

Fonction :
Dans le cas d'une fonction, (qui attend une réponse du système) nous écrirons :

T$ = "Attention"      'Titre du message
M$ = "Désirez-vous vraiment quitter le programme ?"      'Message à afficher

si votre message à afficher est plus long, vous pouvez utiliser la concaténation suivante,

M$ = M$ + " suite du message" (vous pouvez aussi utiliser le caractère "&" à la place du caractère "+")
Reponse% = MsgBox(M$, 4 + 32, T$)

et voici la réponse que vous pouvez éventuellement utiliser :

If Reponse% = 6 Then End      'Sortie du programme

J'utilise depuis Vb 3.0 la fonction précédente qui fonctionne sous toutes les versions connues à ce jour.
Nous allons les étudier en détail avec les tableaux suivants.

Les constantes pour les boutons :

Constante

Chiffre

Description

vbOKOnly

0

Affiche le bouton OK uniquement

vbOKCancel

1

Affiche les boutons OK et Annuler

vbCancelRetryIgnore

2

Affiche les boutons Abandonner, Répéter et Ignorer

vbYesNoCancel

3

Affiche les boutons Oui, Non et Annuler

vbYesNo

4

Affiche les boutons Oui et Non

vbRetryCancel

5

Affiche les boutons Répéter et Annuler

Les constantes pour les icônes :

Constante

Chiffre

Description

vbCritical

16

Affiche l'icône message critique

vbQuestion

32

Affiche l'icône requête d'avertissement

vbExclamation

48

Affiche l'icône message d'avertissement

vbInformation

64

Affiche l'icône message d'information

Les constantes pour le bouton par défaut :

Constante

Chiffre

Description

vbDefaultButton1

0

Le premier bouton est le bouton par défaut

vbDefaultButton2

256

Le deuxième bouton est le bouton par défaut

vbDefaultButton3

512

Le troisième bouton est le bouton par défaut

vbDefaultButton4

768

Le troisième bouton est le bouton par défaut

Chaque bouton lorsqu'il est activé, renvoie une valeur que l'on pourra interpréter au travers de la variable.
Si vous ne mettez pas le paramètre « Type », l'instruction MsgBox n'affichera que le bouton « OK »

Les constantes renvoyées par MsgBox :

Constante

Chiffre

Description

vbOk

1

OK

vbCancel

2

Annuler

vbAbort

3

Abandonner

vbRetry

4

Réessayer

vbIgnore

5

Ignorer

vbYes

6

Oui

vbNo

7

Non

Le code suivant montre un exemple de paramétrage de boîte de dialogue MsgBox avec retour de valeur d'une variable :

Private Sub Button_Supprime_Click ( )
Dim Sup
Sup = MsgBox("Veuillez confirmer la suppression du fichier", vbCritical + vbYesNo + 256, "Attention")
If Sup = vbYes Then
MsgBox "Suppression confirmée"
End If
End Sub

Nous aurions pu écrire :

Sup = MsgBox("Veuillez confirmer la suppression du fichier", 16 + 4 + 256, "Attention")

Faites des essais avec toutes les combinaisons possibles ou bien téléchargez le module d'exemples qui vous permettra de constater de visu toutes les combinaisons possibles de MsgBox [ici]
Voici les fenêtres que vous devez obtenir :

Prochain tutoriel

Les boîtes de dialogues de Windows