Méthode Application.InputBox (Excel)

Cette méthode affiche une boîte de dialogue dans laquelle l'utilisateur peut saisir des données. Elle renvoie les informations saisies dans la boîte de dialogue.

Syntaxe

expression.InputBox (Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)

expression Une variable qui représente un objet Application.

Paramètres

Nom Requis/Facultatif Type de données Description
Prompt Requis String Message à afficher dans la boîte de dialogue. Il peut s’agir d’une chaîne de caractères, d’un nombre, d’une date ou d’une valeur booléenne (Microsoft Excel contraint la valeur à avoir le type de données String avant de l’afficher). La longueur maximale est de 255 caractères, sans quoi il n’y a pas d’invite, et la méthode de l’application renvoie immédiatement Erreur 2015.
Titre Facultatif Variant Titre de la zone d'entrée. Si vous ne spécifiez pas cet argument, le titre par défaut est « Entrée ».
Par défaut Facultatif Variant Spécifie une valeur qui apparaît dans la zone de texte quand la boîte de dialogue s’affiche. Si cet argument est omis, la zone de texte reste vide. Cette valeur peut être un objet Range.
Left Facultatif Variant Spécifie une position x pour la boîte de dialogue, exprimée en points et calculée à partir du coin supérieur gauche de l’écran.
Top Facultatif Variant Spécifie une position y pour la boîte de dialogue, exprimée en points et calculée à partir du coin supérieur gauche de l’écran.
HelpFile Facultatif Variant Nom du fichier d’aide pour cette zone d’entrée. Si les arguments HelpFile et HelpContextID sont présents, un bouton d’aide apparaît dans la boîte de dialogue.
HelpContextID Facultatif Variant Numéro d’identification du contexte de la rubrique d’aide dans HelpFile.
Type Facultatif Variant Spécifie le type des données renvoyées. Si vous ne spécifiez pas cet argument, la boîte de dialogue renvoie du texte.

Valeur renvoyée

Variant

Remarques

Le tableau suivant répertorie les valeurs pouvant être transmises dans l’argument Type. Peut être une valeur ou la somme de plusieurs valeurs. Par exemple, pour une zone d’entrée qui accepte du texte et des nombres, définissez Type sur 1 + 2.

Valeur Description
0 Une formule.
1 Un nombre.
2 Texte (une chaîne).
4 Valeur logique (True ou False)
8 Référence de cellule, sous la forme d’un objet Range.
16 Une valeur d'erreur, telle que #N/A.
64 Un tableau de valeurs.

Utilisez InputBox pour afficher une boîte de dialogue où entrer les informations à utiliser dans une macro. La boîte de dialogue est dotée d’un bouton OK et d’un bouton Annuler. Si vous sélectionnez le bouton OK, InputBox renvoie la valeur entrée dans la boîte de dialogue. Si vous sélectionnez le bouton Annuler, InputBox renvoie False.

Si Type est défini sur 0, InputBox renvoie la formule sous forme de texte (par exemple, =2*PI()/360). Si la formule contient des références, celles-ci sont renvoyées sous forme de références de style A1. (Utilisez ConvertFormula pour changer le style des références.)

Si Type est défini sur 8, InputBox renvoie un objet Range. Vous devez utiliser l’instruction Set pour attribuer le résultat à un objet Range, comme illustré ci-dessous :

Set myRange = Application.InputBox(prompt := "Sample", type := 8)

Si vous n’utilisez pas l’instruction Set, la variable est définie sur la valeur de la plage est plutôt qu’à l’objet Range lui-même.

Si vous utilisez la méthode InputBox pour demander une formule à l’utilisateur, vous devez utiliser la propriété FormulaLocal pour attribuer la formule à un objet Range. La formule d’entrée est dans la langue de l’utilisateur.

La méthode InputBox est différente de la fonction InputBox, car elle autorise une validation sélective de l’entrée de l’utilisateur et elle peut être utilisée avec des objets Excel, des valeurs d’erreur et des formules. Notez que Application.InputBox appelle la méthode InputBox ; InputBox sans qualificateur d’objet appelle la fonction InputBox.

Exemple

Cet exemple montre comment demander à l’utilisateur de taper un nombre.

myNum = Application.InputBox("Enter a number")

Cet exemple invite l’utilisateur à sélectionner une cellule dans Sheet1. L’exemple illustre comment utiliser l’argument Type pour que la valeur renvoyée soit une référence de cellule valide (objet Range).

Worksheets("Sheet1").Activate 
Set myCell = Application.InputBox( _ 
    prompt:="Select a cell", Type:=8)

Cet exemple utilise une méthode InputBox pour permettre à l’utilisateur de sélectionner une plage à transmettre à la fonction MyFunction définie par l’utilisateur, qui multiplie trois valeurs d’une plage et retourne le résultat.

Sub Cbm_Value_Select()
   'Set up the variables.
   Dim rng As Range
   
   'Use the InputBox dialog to set the range for MyFunction, with some simple error handling.
   Set rng = Application.InputBox("Range:", Type:=8)
   If rng.Cells.Count <> 3 Then
     MsgBox "Length, width and height are needed -" & _
         vbLf & "please select three cells!"
      Exit Sub
   End If
   
   'Call MyFunction by value using the active cell.
   ActiveCell.Value = MyFunction(rng)
End Sub

Function MyFunction(rng As Range) As Double
   MyFunction = rng(1) * rng(2) * rng(3)
End Function

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.