Table des matières:
Vidéo: Excel VBA - Comment utiliser la boite de dialogue InputBox 2025
La fonction VBA InputBox est utile pour obtenir une seule information typée par l'utilisateur dans Excle 2016. Cette information peut être une valeur, une chaîne de texte, ou même une plage adresse. C'est une bonne alternative au développement d'un UserForm lorsque vous avez besoin d'une seule valeur.
Syntaxe InputBox
Voici une version simplifiée de la syntaxe de la fonction InputBox:
InputBox (invite [titre] [par défaut])
La fonction InputBox accepte les arguments listés ici.
Argument | Affectations |
---|---|
Invite | Texte affiché dans la zone de saisie |
Titre | Texte affiché dans la barre de titre de la zone de saisie
(optionnel) |
Par défaut | La valeur par défaut de l'entrée de l'utilisateur (optionnel) |
Exemple d'un InputBox
Voici une instruction qui montre comment utiliser la fonction InputBox:
TheName = InputBox ("Quel est votre nom?", "Salutations")
Lorsque vous exécutez cette instruction VBA, Excel affiche cette boîte de dialogue. Notez que cet exemple utilise uniquement les deux premiers arguments et ne fournit pas de valeur par défaut. Lorsque l'utilisateur entre une valeur et clique sur OK, le code attribue la valeur à la variable TheName.
L'exemple suivant utilise le troisième argument et fournit une valeur par défaut. La valeur par défaut est le nom d'utilisateur stocké par Excel (la propriété UserName de l'objet Application).
Sub GetName () Dim LeName As String LeName = InputBox ("Quel est votre nom?", _ "Salutations", Application. UserName) End Sub
L'InputBox affiche toujours un bouton Annuler. Si l'utilisateur clique sur Annuler, la fonction InputBox renvoie une chaîne vide.
La fonction InputBox de VBA renvoie toujours une chaîne, donc si vous avez besoin d'une valeur, votre code doit effectuer une vérification supplémentaire. L'exemple suivant utilise la fonction InputBox pour obtenir un nombre. Il utilise la fonction IsNumeric pour vérifier si la chaîne est un nombre. Si la chaîne contient un nombre, tout va bien. Si l'entrée de l'utilisateur ne peut pas être interprétée comme un nombre, le code affiche une boîte de message.
Sub AddSheets () Dim Invite As String Dim Légende As String Dim DefValue As Long Dim NumSheets As String Invite = "Combien de feuilles souhaitez-vous ajouter? "Caption =" Dites-moi … "DefValue = 1 NumSheets = InputBox (Invite, Légende, DefValue) Si NumSheets =" "Puis Exit Sub & apos; Annulé si IsNumeric (NumSheets) alors si NumSheets> 0 Then Sheets. Add Count: = NumSheets Else MsgBox "Numéro invalide" End If End Sub
Extrait la boîte de dialogue produite par ce sous-programme.
Un autre type de InputBox
Les informations présentées ici s'appliquent à la fonction InputBox de VBA. Microsoft semble aimer la confusion, donc vous avez également accès à la méthode InputBox , qui est une méthode de l'objet Application.
Un gros avantage de l'utilisation de la méthode Application InputBox est que votre code peut demander une sélection de plage. L'utilisateur peut ensuite sélectionner la plage dans la feuille de calcul en mettant en surbrillance les cellules. Voici un exemple rapide qui invite l'utilisateur à sélectionner une plage:
Sub GetRange () Dim Rng Comme plage sur erreur Resume Suivant Set Rng = Application. InputBox _ (prompt: = "Spécifier une plage:", Type: = 8) Si Rng est Nothing, alors Sortir Sub MsgBox "Vous avez sélectionné la plage" & Rng. Adresse End Sub
Voici à quoi cela ressemble.
Dans cet exemple simple, le code indique à l'utilisateur l'adresse de la plage sélectionnée. Dans la vraie vie, votre code ferait réellement quelque chose d'utile avec la gamme sélectionnée. Une bonne chose à propos de cet exemple est qu'Excel s'occupe de la gestion des erreurs. Si vous entrez quelque chose qui n'est pas une plage, Excel vous en informe et vous permet d'essayer à nouveau.
L'application. La méthode InputBox est similaire à la fonction InputBox de VBA, mais elle présente également certaines différences. Consultez le système d'aide pour plus de détails.
