VBA InputBox

Boîte d'entrée Excel VBA

VBA InputBox est une fonction intégrée utilisée pour obtenir une valeur de l'utilisateur, cette fonction a deux arguments majeurs dans lesquels l'un est l'en-tête de la zone de saisie et l'autre est la question pour la zone de saisie, la fonction de la zone de saisie ne peut stocker que les types de données d'entrée que la variable peut contenir.

Souvent dans Excel, nous utilisons les données qui sont déjà présentes dans la feuille Excel. Parfois, nous avons également besoin d'une sorte de données d'entrée des utilisateurs. Surtout dans l'entrée VBA de l'utilisateur est souvent nécessaire.

En utilisant InputBox, nous pouvons obtenir les données de l'utilisateur et les utiliser à nos fins. Une InputBox demandera à l'utilisateur d'entrer la valeur en affichant la InputBox.

Syntaxe

  • Invite: ce n'est rien d'autre que le message à l'utilisateur via une zone de saisie.
  • Titre: quel est le titre de la zone de saisie?
  • Par défaut: quelle est la valeur par défaut de la zone de saisie? Cette valeur apparaît dans la zone de saisie de la zone de saisie.

Ces trois paramètres sont assez bons dans Excel, ignorez les 4 autres paramètres optionnels. Pour comprendre cette syntaxe, regardez la capture d'écran ci-dessous.

Comment créer InputBox dans VBA?

Ok, passons directement à l'aspect pratique. Suivez les étapes ci-dessous pour créer votre toute première boîte de saisie.

Vous pouvez télécharger ce modèle Excel VBA InputBox ici - Modèle Excel VBA InputBox

Étape 1: Accédez à VBE (Visual Basic Editor) et insérez un nouveau module.

Étape 2: Double-cliquez sur le module inséré et créez un nom de macro.

Étape 3: Commencez à taper le mot «InputBox», vous verrez les options associées.

Étape 4: Sélectionnez INPUTBOX et laissez de l'espace et vous verrez la syntaxe de la boîte de saisie.

Étape 5: Donnez le message «Veuillez entrer votre nom».

Étape 6: Tapez le titre de la zone de saisie comme «Informations personnelles».

Étape 7: saisissez la valeur par défaut "Tapez ici"

Étape 8: Nous avons terminé. Exécutez ce code et voyez votre première zone de saisie.

Stocker la valeur de InputBox dans les cellules

Nous allons maintenant passer par le processus de stockage des valeurs dans les cellules. Suivez les étapes ci-dessous.

Étape 1: déclarer la variable comme Variant.

Code:

 Sub InputBox_Example () Dim i As Variant End Sub 

Étape 2: Pour cette variable, attribuez la valeur via la zone de saisie.

Code:

 Sub InputBox_Example () Dim i As Variant i = InputBox ("Please Enter Your Name", "Personal Information", "Type Here") End Sub 

Remarque: une fois que la zone de saisie arrive à droite du signe égal, nous devons entrer les arguments ou la syntaxe entre crochets comme nos formules régulières.

Étape 3: Quelle que soit la valeur saisie dans la zone de saisie, nous devons la stocker dans la cellule A1. Pour cela, écrivez le code sous la forme Range ("A1"). Valeur = i

Code:

 Sub InputBox_Example () Dim i As Variant i = InputBox ("Please Enter Your Name", "Personal Information", "Type Here") Range ("A1"). Value = i End Sub 

Ok, nous avons terminé. Exécutons ce code maintenant en appuyant sur la touche F5 ou vous pouvez également exécuter le code manuellement, comme indiqué dans la capture d'écran ci-dessous.

Dès que vous exécutez ce code, nous verrons la zone de saisie.

Tapez le nom et cliquez sur Ok.

Dès que vous tapez le nom et cliquez sur OK, vous verrez la valeur de la zone de saisie dans la cellule A1.

Remarque: Nous pouvons stocker n'importe quelle valeur de la zone de saisie si la variable est correctement définie. Dans l'exemple ci-dessus, j'ai défini la variable comme Variant qui peut contenir tous les types de données.

Par exemple, j'ai maintenant changé le type de variable en Date.

Maintenant, exécutez le code et tapez autre que la date.

Cliquez sur ok et voyez quelle est la réponse.

Nous avons obtenu la valeur d'erreur comme incompatibilité de type . Puisque nous avons déclaré le type de données variable comme DATE, nous ne pouvons pas stocker autre chose que DATE avec une zone de saisie.

Entrez maintenant la date et voyez ce qui se passe.

Dès que vous tapez la date, cliquez sur OK et voyez quelle est la réponse.

Puisque nous avons entré la valeur correcte, nous avons obtenu le résultat dans la cellule.

Validation de l'entrée de l'utilisateur

Vous savez ce que nous pouvons réellement permettre aux utilisateurs de saisir uniquement une valeur spécifique, c'est-à-dire permettre à l'utilisateur de saisir uniquement du texte, uniquement des chiffres, uniquement des valeurs logiques, etc.

Pour effectuer cette tâche, nous devons utiliser la méthode Application.InputBox.

Regardons la syntaxe de Application.InputBox.

 

  • Invite: ce n'est rien d'autre que le message à l'utilisateur via une zone de saisie.
  • Titre: quel est le titre de la zone de saisie?
  • Par défaut: quelle est la valeur par défaut de la zone de saisie? Cette valeur apparaît dans la zone de saisie de la zone de saisie.
  • Gauche: Quelle devrait être la position x de la zone de saisie dans la fenêtre actuelle?
  • Top: What should be the y position of the inputbox in the current window?

To start this inputbox declare variable and assign the value to a variable.

Now to assign value to start the word Application.

After the word Application put a dot (.) and type Inputbox.

Select input box and open the bracket.

As usual enter Prompt, Title, and Default Value.

Now ignore left, top, help file, help context ID by typing 5 commas (,).

Here Type means what should be the input string. Below are the validations available.

So, accordingly, select your type. I have selected 1 as the parameter i.e. only numbers.

Now run the code and type of text value.

Click on OK and see what happens.

It says the number is not valid. So we can enter only numbers in this input box.

Things to Remember

  • We need a variable to store the value given by the input box.
  • If you are using InputBox without the Application method then you should be perfect about the variable data type.
  • Use Variant data type which can hold any kind of data type and stores.