VBA InputBox - Obtenir l'entrée d'un utilisateur dans une macro - Exemples de code VBA

Ce didacticiel montrera comment obtenir l'entrée d'un utilisateur avec la zone de saisie VBA.

Les Boîte de saisie VBA nous permet d'inviter l'utilisateur à saisir des informations. Les informations peuvent ensuite être utilisées dans notre code VBA ou dans une feuille de calcul Excel.

La boîte de saisie VBA avec une variable

Nous pouvons déclarer une variable dans notre code VBA qui stocke ensuite les informations saisies dans la zone de saisie. Nous pouvons ensuite utiliser cette variable dans notre code.

Selon le type d'informations que nous voulons renvoyer à partir de la zone de saisie, nous pouvons déclarer un type spécifique de variable soit pour renvoyer du texte (une chaîne ou une variable variante) soit pour renvoyer un nombre (un entier, une variable longue, double ou simple).

La variable de chaîne avec une zone de saisie

Voici comment vous pouvez créer une InputBox où les données sont renvoyées dans une variable de chaîne.

123 Dim strInput as StringstrInput = InputBox("Ceci est ma InputBox", "MyInputTitle", "Entrez votre texte de saisie ICI")

Remarquez d'abord que nous déclarons une variable. Cette variable se verra attribuer la valeur saisie par l'utilisateur. Nous avons utilisé le type de variable String pour que la zone de saisie accepte les chaînes de texte (qui incluent tous les caractères alphanumériques).

La variable numérique avec une zone de saisie

Si vous déclarez une variable numérique, vous devrez entrer un nombre uniquement dans la zone de saisie.

12 Dim iInput en tant qu'entieriInput = InputBox("Veuillez entrer un numéro", "Créer un numéro de facture", 1)

Tout d'abord, nous déclarons la variable numérique en tant que variable entière. Nous pouvons alors également mettre une valeur par défaut de 1 dans la zone de saisie.

Si nous devions saisir une chaîne au lieu d'un nombre, puis cliquer sur OK, nous obtiendrions une erreur de non-correspondance de type car une variable numérique n'accepte pas de chaîne.

Obtenir l'entrée d'un utilisateur

Voici un autre exemple utilisant les fonctionnalités les plus populaires d'une InputBox.

Le code suivant fait trois choses :

1. Demande de saisie avec une InputBox et l'affecte à une variable

2. Vérifie l'entrée, sinon quitte le sous-marin

3. Renvoie l'entrée dans une boîte de message

12345678910111213 Sous-public MyInputBox()Dim MyInput en tant que chaîneMyInput = InputBox("Ceci est ma InputBox", "MyInputTitle", "Entrez votre texte de saisie ICI")Si MyInput = "Entrez votre texte de saisie ICI" Ou MyInput = "" AlorsQuitter le sousFin siMsgBox "Le texte de MyInputBox est " & MyInputFin du sous-marin

Retour de l'entrée dans une feuille Excel

Vous pouvez renvoyer l'entrée que vous tapez dans une zone de saisie dans une cellule spécifique de votre feuille Excel.

1 Range("P1") = InputBox("Veuillez saisir votre nom", "Entrez le nom", "Entrez le nom ICI")

Nous pouvons également renvoyer les données d'entrée dans une feuille Excel à l'aide d'une variable.

12345678910 Sous EnterNumber()En cas d'erreur Reprendre ensuiteDim dblAmount en tant que doubledblAmount = InputBox("Veuillez entrer le montant requis", "Entrez le montant")Si dblAmount 0 AlorsPlage ("A1") = dblAmountAutreMsgBox "Vous n'avez pas entré de numéro !"Fin siFin du sous-marin

Dans l'exemple ci-dessus, nous devons entrer un numéro. Si nous entrons un nombre, alors la variable dblMontant mettra le nombre dans la feuille Excel à la cellule A1. Cependant, si nous n'entrons pas de numéro, une boîte de message nous dira que nous n'avons pas entré de numéro et rien ne sera mis dans la cellule A1.

Utilisation de VBA InputBox dans Access VBA

La zone de saisie VBA fonctionne exactement de la même manière dans Access que dans Excel lors du retour de l'entrée utilisateur sous la forme d'une boîte de message.

Cependant, si vous souhaitez renvoyer l'entrée utilisateur dans la base de données, vous devrez utiliser l'objet Recordset plutôt que l'objet Range tel qu'il est utilisé dans Excel.

1234567891011121314 Sub EnterInvoiceNumber()Dim dbs en tant que base de donnéesDim d'abord en tant que jeu d'enregistrementsDéfinir dbs = CurrentDbDéfinir d'abord = dbs.OpenRecordset("tblMatters", dbOpenDynaset)Avec d'abord.AjouterNouveau!InvNo = InputBox("Veuillez saisir le numéro de facture", "GÉNÉRATION DU NUMÉRO DE FACTURE", 1).Mettre à jourTerminer parpremier.FermerDéfinir en premier = RienDéfinir dbs = RienFin du sous-marin

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave