Vidéo: Visual Basic Editor (VBA) Updates for Excel for Mac 2016 2025
Vous pouvez utiliser la fonction InputBox pour ajouter des boîtes de dialogue à vos macros Excel 2013. Lorsque vous exécutez la macro, cette fonction Visual Basic entraîne l'affichage d'une boîte de dialogue Entrée dans laquelle vous pouvez entrer n'importe quel titre pour la nouvelle feuille de calcul. La macro place ensuite ce texte dans la cellule active et formate ce texte, si c'est ce que vous avez appris à faire ensuite.
Pour voir à quel point il est facile d'utiliser la fonction InputBox pour ajouter de l'interactivité à une macro autrement staid, suivez les étapes de conversion de la macro Company_Name qui écrit le texte "Mind Over Media" en une invite qui vous invite réellement que vous voulez entré. La fonction InputBox utilise la syntaxe suivante:
InputBox (invite [titre] [par défaut] [xpos] [ypos] [fichier d'aide, contexte])
Dans cette fonction, seule l'invite > l'argument est requis avec le reste des arguments étant optionnel. L'argument prompt spécifie le message qui apparaît dans la boîte de dialogue de saisie, invitant l'utilisateur à entrer une nouvelle valeur (ou dans ce cas, un nouveau nom de société). L'argument
invite peut contenir jusqu'à 1, 024 caractères. Si vous souhaitez que le message d'invite apparaisse sur différentes lignes dans la boîte de dialogue, entrez les fonctions Chr (13) et Chr (10) dans le texte (pour insérer un retour chariot et un saut de ligne dans le message, respectivement).
title spécifie le texte à afficher dans la barre de titre de la boîte de dialogue de saisie. Si vous ne spécifiez pas d'argument title , Excel affiche le nom de l'application dans la barre de titre. L'argument facultatif default spécifie la réponse par défaut qui apparaît automatiquement dans la zone de texte située en bas de la boîte de dialogue de saisie. Si vous ne spécifiez pas d'argument par défaut, la zone de texte est vide dans la boîte de dialogue Entrée.
xpos et ypos spécifient la distance horizontale entre le bord gauche de l'écran et le bord gauche de la boîte de dialogue et la distance verticale du bord supérieur de l'écran au bord supérieur de la boîte de dialogue. Si vous ne spécifiez pas ces arguments, Excel centre horizontalement la boîte de dialogue de saisie et la positionne verticalement à environ un tiers de l'écran. Les arguments facultatifs
helpfile et contextuels spécifient le nom du fichier d'aide personnalisé que vous mettez à la disposition de l'utilisateur pour expliquer le fonctionnement de la boîte de dialogue Entrée ainsi que le type des données qu'il accepte. Dans le cadre du processus de création d'un fichier d'aide personnalisé à utiliser dans le système d'aide Excel, attribuez à la rubrique un numéro de contexte approprié à son contenu, qui est ensuite spécifié comme argument
context pour le Fonction InputBox. Lorsque vous spécifiez un fichier d'aide et l'argument
contexte pour cette fonction, Excel ajoute un bouton Aide à la boîte de dialogue Entrée personnalisée que les utilisateurs peuvent cliquer pour accéder au fichier d'aide personnalisé dans la fenêtre Aide. Avant de pouvoir ajouter la ligne de code à la macro avec la fonction InputBox, vous devez trouver l'emplacement dans les commandes Visual Basic où la ligne doit aller. Pour entrer le texte Mind Over Media dans la cellule active, la macro Company_Name utilise la commande Visual Basic suivante:
ActiveCell. FormulaR1C1 = "Mind Over Media"
Pour ajouter de l'interactivité à la macro, vous devez insérer la fonction InputBox sur une ligne de la fenêtre Code juste au-dessus de cette ActiveCell. Instruction FormulaR1C1, comme suit:
Positionnez le point d'insertion dans la fenêtre Code au début de ActiveCell. FormulaR1C1 et appuyez sur Entrée pour insérer une nouvelle ligne.
-
Maintenant que vous avez ajouté une nouvelle ligne, vous devez déplacer le point d'insertion.
Appuyez sur la flèche vers le haut pour positionner le point d'insertion au début de la nouvelle ligne.
-
Sur cette ligne, vous voulez créer une variable qui fournit l'argument
prompt à la fonction InputBox. Pour ce faire, vous devez indiquer le nom de la variable (InputMsg dans ce cas) suivi de son entrée actuelle. Assurez-vous de placer le texte du message sur le côté droit du signe égal dans une paire de guillemets fermés. Tapez le code suivant pour créer la variable InputMsg sur la ligne 8, puis appuyez sur la touche Entrée pour démarrer une nouvelle ligne 9:
-
InputMsg = "Entrez le nom ou le titre de cette feuille dans la zone de texte ci-dessous cliquez sur OK: "
Ensuite, vous créez une variable nommée InputTitle qui fournit l'argument facultatif
title pour la fonction InputBox. Cette variable fait apparaître le texte "Spreadsheet Title" comme le titre de la boîte de dialogue Input. À nouveau, assurez-vous de placer le nom de la barre de titre de la boîte de dialogue entre guillemets. Tapez le code suivant pour créer la variable InputTitle sur la ligne 9, puis appuyez sur Entrée pour insérer une nouvelle ligne 10:
-
InputTitle = "Spreadsheet Title"
Ensuite, vous créez un nom de variable DefaultText
argument par défaut pour la fonction InputBox. Cette variable fait apparaître le texte «Mind Over Media» en tant qu'entrée par défaut dans la zone de texte située en bas de la boîte de dialogue Saisie du nom d'entreprise personnalisée. Tapez le code suivant pour créer la variable DefaultText sur la ligne 10 et appuyez sur Entrée pour insérer une nouvelle ligne 11:
-
DefaultText = "Mind Over Media"
Ensuite, vous créez une variable finale nommée CompanyName la fonction InputBox comme entrée (en utilisant les variables InputMsg, InputTitle et DefaultText que vous venez de créer) et stocke les résultats de cette fonction.
Tapez le code suivant pour créer la variable SpreadsheetTitle qui utilise la fonction InputBox à la ligne 11:
-
SpreadsheetTitle = InputBox (InputMsg, InputTitle, DefaultText)
Enfin, vous remplacez la valeur "Mind Over Media", dans l'ActiveCell.Propriété FormulaR1C1 avec la variable SpreadsheetTitle (dont la valeur est déterminée par tout ce qui est entré dans la boîte de dialogue Input Spreadsheet Title), remplaçant ainsi efficacement cette constante dans la macro par les moyens de rendre cette entrée réellement interactive.
Sélectionnez "Mind Over Media" à la ligne 12 et remplacez-le par SpreadsheetTitle (sans guillemets).
-
Enregistrez la macro modifiée en cliquant sur le bouton Enregistrer dans la barre d'outils Visual Basic, puis revenez à la feuille de calcul en cliquant sur le bouton Afficher Microsoft Excel ou en appuyant sur Alt + F11. Ensuite, cliquez sur le bouton Masquer dans le groupe Fenêtre de l'onglet AFFICHER.
-
Vous êtes maintenant prêt à ouvrir un nouveau classeur et à exécuter la macro modifiée en appuyant sur Ctrl + N.
La figure montre la fenêtre Code avec la macro Company_Name éditée après avoir ajouté les instructions qui la rendent interactive.
La figure suivante montre la boîte de dialogue Titre de feuille de calcul en action dans la feuille de calcul. Cette boîte de dialogue de saisie apparaît maintenant automatiquement et vous invite à entrer chaque fois que vous exécutez la version modifiée et maintenant entièrement interactive de la macro Company_Name.
Pour aller de l'avant et entrer Mind Over Media dans la cellule en cours, puis le formater en utilisant le reste des commandes de la macro, vous cliquez simplement sur OK dans cette boîte de dialogue personnalisée. Pour entrer et formater le nom d'une autre société, il vous suffit de taper le nom de la société (qui remplace automatiquement Mind Over Media dans la zone de texte) avant de cliquer sur OK.