|
RELATIONS AVEC L'UTILISATEUR
Cette fonction affiche une boîte de dialogue avec 1 ou plusieurs
boutons, attend un clic sur un bouton, puis renvoie une valeur de type Integer indiquant
quel bouton a été cliqué.
MsgBox permet de préciser le texte à afficher,
le type de boutons et l'icône à afficher, le titre de la boîte
de dialogue et éventuellement l'aide à afficher (il faut
au préalable concevoir un fichier d'aide).
Si le bouton cliqué n'a aucune importance, dans le cas où vous
ne désirez que afficher un message à l'utilisateur, utilisez MsgBox
ainsi :
MsgBox "Texte à afficher"
Ou :
MsgBox "Texte à afficher",vbOKOnly,"Titre
de la fenêtre"
Par contre, pour demander un choix en retour, utilisez-la ainsi :
Sub Message()
Dim Retour As Integer
Retour = MsgBox("Question à poser",
vbYesNo + vbCritical + vbDefaultButton2, "Titre de la boîte")
If Retour = vbYes Then
Range("A1")
= "Réponse OUI"
Else
Range("A1")
= "Réponse NON"
End If
End Sub
Le 2ème paramètre de la fonction concerne les
boutons et l'icône à afficher, c'est une donnée numérique
qui est la somme des valeurs représentants le type des boutons, le style
de l'icône, le bouton par défaut. Le tableau suivant décrit
ces différentes valeurs, vous ne pouvez additionner qu'une seule valeur
dans chaque groupe :
| Groupe |
Constante |
Value |
Affiche |
| Type des
boutons |
vbOKOnly |
0 |
le bouton OK uniquement. |
| vbOKCancel |
1 |
les boutons OK et Annuler. |
| vbAbortRetryIgnore |
2 |
le bouton Abandonner, Réessayer et Ignorer. |
| vbYesNoCancel |
3 |
les boutons Oui, Non et Annuler. |
| vbYesNo |
4 |
les boutons Oui et Non. |
| vbRetryCancel |
5 |
les boutons Réessayer et Annuler. |
| Style
de l'icône |
vbCritical |
16 |
l'icône Message critique. |
| vbQuestion |
32 |
l'icône Requête d'avertissement. |
| vbExclamation |
48 |
l'icône Message d'avertissement. |
| vbInformation |
64 |
l'icône Message d'information. |
| Bouton
par défaut |
vbDefaultButton1 |
0 |
Le premier bouton |
| vbDefaultButton2 |
256 |
Le deuxième bouton |
| vbDefaultButton3 |
512 |
Le troisième bouton |
| vbDefaultButton4 |
768 |
Le quatrième bouton |
| Modalité de
la boîte de dialogue |
vbApplicationModal |
0 |
L'utilisateur doit répondre
au message affiché avant de pouvoir continuer de travailler
dans l'application en cours (par défaut). |
| vbSystemModal |
4096 |
Comme ci-dessus, mais la boîte
de dialogue est visible et au 1er plan quelque soit
l'application active. |
La fonction renvoie ces valeurs, selon le bouton cliqué :
| Bouton |
Constante |
Valeur |
| OK |
vbOK |
1 |
| Annuler |
vbCancel |
2 |
| Abandonner |
vbAbort |
3 |
| Réessayer |
vbRetry |
4 |
| Ignorer |
vbIgnore |
5 |
| Oui |
vbYes |
6 |
| Non |
vbNo |
7 |
Cette fonction affiche une boîte de dialogue avec une zone de texte, elle
attend que l'utilisateur tape du texte dans cette dernière et/ou clique
sur un bouton. Elle renvoie alors le texte tapé sous forme d'une chaîne
(le type String).
InputBox permet de préciser le texte
d'invite, le titre de la boîte de dialogue, le texte à afficher
dans la zone de texte (permet de proposer une réponse par défaut),
la position sur l'écran de cette boîte et éventuellement
l'aide à afficher (il faut au préalable concevoir un fichier
d'aide).
L'exemple suivant, vous indique comment l'utiliser.
Sub Message()
Dim Retour As String
Retour = InputBox("Texte à afficher dans la cellule
A1 ? ", "Titre de la fenêtre", "Texte par défaut",
100, 100)
Range("A1") = Retour
End Sub
Si vous n'avez pas de texte par défaut à proposer vous utilisez
la ligne ainsi :
Retour
= InputBox("Texte à afficher dans la cellule A1 ? ", "Titre
de la fenêtre", , 100, 100)
Si vous ne précisez pas la position sur l'écran,
la boîte de dialogue est centrée horizontalement et se positionne à 1/3
de l'écran, en partant du haut, la ligne s'écrit alors ainsi
:
Retour = InputBox("Texte à afficher
dans la cellule A1 ? ", "Titre de la fenêtre", "Texte
par défaut")
Dans le cas où l'utilisateur clique sur le bouton Annuler, la
fonction renvoie une chaîne vide, vous avez alors 2 possibilités
pour gérer cette annulation :
- Vous voulez empêcher l'utilisation de ce bouton, écrivez
le code ainsi :
Do
Retour = InputBox("Texte à afficher
dans la cellule A1 ? ")
Loop While Retour = ""
- Vous ne voulez pas continuer le code :
Retour
= InputBox("Texte à afficher dans la cellule A1 ? ")
If Retour = "" Then Exit Sub
|