Excel VBA InputBox

Bien que la plupart du temps, vous utilisez les données qui sont déjà avec vous, parfois vous arrivez à une situation où vous souhaitez que l'utilisateur saisisse les données comme le nom, l'âge, etc., des informations personnelles. Ces types d'informations d'entrée sont parfois nécessaires lorsque nous menons une enquête et que nous devons examiner l'opinion impartiale des gens.

En utilisant InputBox d'Excel VBA, nous pouvons obtenir les données d'entrée de l'utilisateur. Comme son nom l'indique, InputBox fonctionne comme une fenêtre contextuelle qui demande à l'utilisateur de fournir certaines informations.

Syntaxe pour VBA InputBox

Voici la syntaxe de VBA InputBox:

Où,

  • Invite - Message qui s'affiche pour l'utilisateur. C'est le seul argument requis, les autres arguments sont facultatifs.
  • Titre - C'est l'en-tête qui apparaît dans la fenêtre de dialogue après l'exécution réussie de l'instruction InputBox. S'il n'est pas fourni, le système imprime par défaut «Microsoft Excel» comme titre.
  • Par défaut - C'est la valeur par défaut qui apparaît dans la boîte de dialogue. Nous pouvons également le garder nul. Aucune valeur par défaut définie pour cet argument.
  • XPos - Coordonne la position d'une boîte de dialogue sur l'axe X.
  • YPos - Coordonne la position d'une boîte de dialogue sur l'axe Y.
  • HelpFile - Emplacement du fichier d'aide à utiliser. Cet argument devient obligatoire à définir lorsque l'argument «Contexte» est passé.
  • Context - Représente l'aide ContextId pour le HelpFile utilisé. Obligatoire à utiliser lorsque l'argument 'HelpFile' est passé.
  • Sur tous ces arguments, seuls les trois premiers sont suffisants pour créer avec succès un InputBox.

Créer InputBox dans Excel VBA

Voici les différentes étapes pour créer InputBox dans Excel à l'aide du code VBA.

Vous pouvez télécharger ce modèle Excel VBA InputBox ici - Modèle Excel VBA InputBox
  • Ouvrez VBE (Visual Basic Editor en appuyant simultanément sur Alt + F11 dans un fichier Excel et cliquez sur Insérer et ajoutez un nouveau module dans VBE.

  • Créez une macro dans ce module nommé 'Module1'. Attribuez un nom à la macro.

  • Tapez la commande InputBox dans l'éditeur.

Donnez les entrées suivantes à l'instruction InputBox:

  • Invite: "Puis-je connaître votre nom complet?"
  • Titre: «Informations personnelles»
  • Par défaut: «Commencez à taper ici

Code:

 Sub InputBoxEX () InputBox "Puis-je connaître votre nom?", "Informations personnelles", "Commencer à taper ici" End Sub 

  • Appuyez sur F5 ou sur le bouton Exécuter pour exécuter ce code.

Comment stocker la sortie de InputBox dans des cellules?

Vous avez créé InputBox pour obtenir l'entrée de l'utilisateur. Cependant, où la sortie sera-t-elle stockée? Nous n'avons mentionné aucun emplacement où la sortie peut être stockée.

Stockons la sortie que nous obtenons de InputBox pour exceller dans les cellules en suivant les étapes ci-dessous dans VBA:

  • Déclarez une nouvelle variable «Nom» avec le type «Variante». Ce type de variable peut prendre n'importe quelle valeur (numérique / chaîne / logique, etc.).

Code:

 Sub InputBoxEX () Dim Name As Variant End Sub 

  • Utilisez InputBox pour attribuer une valeur à cette variable appelée «Nom».

Code:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox ("Puis-je connaître votre nom?", "Informations personnelles", "Commencer à taper ici") End Sub 

Si vous avez pu remarquer les parenthèses après l'instruction InputBox, celles-ci sont nécessaires car nous utilisons cette instruction pour une variable 'Name'. Dès qu'elle devient une valeur à donner pour une variable, elle doit être mentionnée dans un format approprié avec des parenthèses.

  • Maintenant, quelle que soit la valeur saisie par l'utilisateur dans la boîte de dialogue, nous souhaitons que cela s'affiche dans la cellule A1 de la feuille Excel. Mettez l'instruction suivante pour le même dans VBE: Range ("A1"). Value = Name.

Code:

 Sub InputBoxEX () Dim Name As Variant Name = InputBox ("May I know Your Name?", "Personal Information", "Start Typing Here") Range ("A1"). Value = Name End Sub 

Ça y est, maintenant exécutons ce code et voyons comment cela fonctionne.

  • Cliquez sur le bouton Exécuter ou appuyez sur F5 pour exécuter ce code, vous obtiendrez la boîte de dialogue suivante. Écrivez votre nom dans la boîte de dialogue apparaissant avec le nom «Informations personnelles» et appuyez sur OK pour voir où la sortie est imprimée.

  • Dès que vous entrez la valeur et cliquez sur OK, vous pouvez voir la valeur entrée dans la cellule A1. Voir la capture d'écran ci-dessous.

Toute valeur peut être stockée à l'aide de InputBox si la variable est correctement définie. Dans ce cas, vous avez défini la variable «Nom» comme «Variante». Le type de données variant peut prendre n'importe quelle valeur de données comme je l'ai dit plus tôt.

Voir l'exemple ci-dessous:

Je donne un nombre comme argument à la boîte de dialogue lorsqu'elle apparaît. Voir ci-dessous:

Cliquez sur OK, voir la sortie ci-dessous:

La valeur de la cellule A1 passe à 2019.

Modifions maintenant le type de variable à Date.

Code:

 Sub InputBoxEX () Dim Name As Date Name = InputBox ("May I know Your Name?", "Personal Information", "Start Typing Here") Range ("A1"). Value = Name End Sub 

Exécutez le code et essayez d'entrer une valeur autre que la date. Je vais saisir mon nom lui-même et cliquer sur OK.

  • Après avoir cliqué sur OK, un message d'erreur au moment de l'exécution indiquant «Type de non-concordance».

Cela s'est produit car le type de nom de variable est Date maintenant et j'ai donné un argument d'entrée autre que la valeur de date (un nom de chaîne). En raison de quoi ce code ne s'exécute pas et génère une erreur.

Validation de l'entrée utilisateur

Et si je vous dis que l'entrée utilisateur peut être restreinte? Oui c'est vrai! Vous pouvez restreindre l'entrée utilisateur à des caractères, des nombres ou des logiques, etc.

Pour restreindre l'entrée utilisateur, vous pouvez utiliser Application.InputBox.

La syntaxe pour Application.InputBox est la suivante:

Où,

Invite - Message qui apparaît pour l'utilisateur.

Titre - En-tête de la boîte de dialogue.

Par défaut - Valeur par défaut qui apparaît dans la zone de saisie sous la boîte de dialogue.

Type - Le type d'entrée.

Ce sont les seuls arguments importants qui suffisent pour exécuter cette instruction.

Commençons par l'exemple.

  • Déclarez un nom de variable comme variant.

Code:

 Sub InputBoxEX () Dim Name As Variant End Sub 

Attribuez Application.InputBox à la variable nommée Name avec les mêmes arguments que ceux que vous avez utilisés InputBox. c'est-à-dire invite, titre et défaut. Voir le code ci-dessous:

Code:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox ("Puis-je connaître votre nom?", "Informations personnelles", "Commencer à taper ici") End Sub 

Maintenant, mettez 5 fois une virgule pour ignorer les éléments Left, Top, HelpFile et HelpContextID. Après 5 virgules, vous pouvez spécifier le type d'entrée.

Code:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox ("May I know Your Name?", "Personal Information", "Start Typing Here",,,,, End Sub 

Le type de la chaîne d'entrée a les validations ci-dessous:

  • Choisissons 1 comme type dans notre instruction. Cela signifie que seuls les nombres / valeurs numériques sont acceptables dans la boîte de dialogue qui s'affiche.

Code:

 Sub InputBoxEX () Dim Name As Variant Name = Application.InputBox ("May I know Your Name?", "Personal Information", "Start Typing Here",,,,, 1) End Sub 

  • Exécutez le code manuellement ou à l'aide de la touche F5 et donnez le nom comme entrée dans la zone de saisie, comme indiqué ci-dessous. Cliquez ensuite sur OK et voyez la sortie.

Il dit que le numéro n'est pas valide. Cela semble logique car nous avons défini le type d'entrée variable comme le nombre et fourni le texte comme une entrée qui n'est pas acceptable par le système.

De cette façon, vous pouvez restreindre l'utilisateur à entrer uniquement les valeurs que vous souhaitez voir via InputBox.

Choses dont il faut se rappeler

  • InputBox accepte jusqu'à 255 arguments et ne peut afficher que 254. Soyez donc prudent quant à la longueur maximale qu'un utilisateur peut entrer.
  • La méthode d'application peut être utilisée pour définir le type de données d'entrée. Cependant, s'il n'est pas utilisé, vous devez être plus précis sur le type de données d'entrée.
  • Il est recommandé de choisir un type de données variant car il peut contenir n'importe quel nombre numérique / texte / logique, etc. B = Valeurs.

Articles recommandés

Cela a été un guide pour VBA InputBox. Ici, nous avons discuté de la façon de créer InputBox dans Excel à l'aide du code VBA ainsi que des exemples pratiques et un modèle Excel téléchargeable. Vous pouvez également consulter nos autres articles suggérés -

  1. Comment utiliser la fonction FIND dans Excel
  2. Création d'une fonction VBA dans Excel
  3. Guide de plage dans Excel
  4. Comment utiliser la fonction VBA VLOOKUP?

Catégorie: