CathyAstuce

VBA

GEMCCAP CONSEIL INFORMATIQUE BUREAUTIQUE
Formation - Conception Sites Internet
Applications Informatiques Personnalisées
Communauté partenaire Microsoft

RELATIONS AVEC L'UTILISATEUR

MsgBox  InputBox 

Remonter I. MsgBox

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

Remonter II. InputBox

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
AccueilDébut de la page