Vidéo: Les boîtes de dialogue en VBA Excel pour interagir 2025
Être un programmeur VBA peut parfois être accablant. Une façon de voir VBA est que c'est un outil qui vous permet d'imiter les commandes Excel. Par exemple, considérez cette instruction VBA:
Range ("A1: A12"). Name = "MonthNames"
L'exécution de cette instruction VBA a le même effet que choisir Formules → Noms définis → Définir le nom pour afficher la boîte de dialogue Nouveau nom, en tapant MonthNames dans la zone Nom et A1: A12 dans la zone Refers. cliquant sur OK.
Lorsque vous exécutez l'instruction VBA, la boîte de dialogue Nouveau nom n'apparaît pas. C'est presque toujours ce que vous voulez arriver; vous ne voulez pas que les boîtes de dialogue clignotent sur l'écran pendant que votre macro s'exécute.
Dans certains cas, cependant, vous souhaiterez peut-être que votre code affiche l'une des nombreuses boîtes de dialogue intégrées d'Excel et que l'utilisateur fasse les choix dans la boîte de dialogue. Vous pouvez le faire en utilisant VBA pour exécuter une commande Ribbon. Voici un exemple qui affiche la boîte de dialogue Nouveau nom. L'adresse dans la zone Refers To représente la plage sélectionnée lorsque la commande est exécutée.
Application. CommandBars. ExecuteMso "NameDefine"
Votre code VBA ne peut obtenir aucune information de la boîte de dialogue. Par exemple, si vous exécutez le code pour afficher la boîte de dialogue Nouveau nom, votre code ne peut pas obtenir le nom entré par l'utilisateur ou la plage qui est nommée.
ExecuteMso est une méthode de l'objet CommandBars et accepte un argument: un paramètre idMso qui représente un contrôle Ribbon. Malheureusement, ces paramètres ne sont pas répertoriés dans le système d'aide. Et parce que le ruban n'a pas toujours existé, le code qui utilise la méthode ExecuteMso n'est pas compatible avec les versions antérieures à Excel 2007.
Voici un autre exemple d'utilisation de la méthode ExecuteMso. Cette instruction, lorsqu'elle est exécutée, affiche l'onglet Police de la boîte de dialogue Format de cellule:
Application. CommandBars. ExecuteMso"FormatCellsFontDialog"
Si vous tentez d'afficher une boîte de dialogue intégrée dans un contexte incorrect, Excel affiche un message d'erreur. Par exemple, voici une instruction qui affiche la boîte de dialogue Format Number:
Application. CommandBars. ExecuteMso "NumberFormatsDialog"
Si vous exécutez cette instruction lorsque ce n'est pas approprié (par exemple, une forme est sélectionnée), Excel affiche un message d'erreur car cette boîte de dialogue est appropriée uniquement pour les cellules de feuille de calcul.
Excel a des milliers de commandes. Comment pouvez-vous trouver le nom de celui dont vous avez besoin? Une façon consiste à utiliser l'onglet Personnaliser le ruban de la boîte de dialogue Options Excel. Le moyen le plus rapide d'y arriver consiste à cliquer avec le bouton droit sur un contrôle du ruban et à choisir Personnaliser le ruban dans le menu contextuel.
Pratiquement toutes les commandes disponibles dans Excel sont listées dans le panneau de gauche. Trouvez la commande dont vous avez besoin et placez votre souris dessus, et vous voyez son nom de commande secrète dans l'info-bulle (c'est la partie entre parenthèses).
