Vidéo: Enregistrer une Macro de Tri et l'associer à un bouton (Excel) -Simple 2025
Pour utiliser n'importe quelle macro dans Excel, vos utilisateurs doivent activer les macros. Autrement dit, ils doivent autoriser Excel à exécuter des macros dans leur environnement. Pour activer les macros, les utilisateurs cliquent sur le bouton Activer le contenu dans l'avertissement de sécurité qui apparaît au-dessus de la barre de formule.
L'essentiel est que vous pouvez écrire toutes les macros de fantaisie dans le monde, mais elles ne fonctionneront jamais à moins que vos utilisateurs n'activent les macros. Cela soulève la question; pouvez-vous forcer les utilisateurs à activer les macros? La réponse est oui - avec un peu de ruse.
L'idée est relativement simple. Vous créez une feuille nommée, par exemple, START. Cette feuille contient seulement un simple avertissement indiquant que les macros doivent être activées. Vous masquez ensuite toutes les feuilles dans le classeur à l'exception de cette feuille de départ. Enfin, vous écrivez une macro simple qui affiche toutes les feuilles lorsque le classeur est ouvert.
À ce stade, lorsque le classeur est Ouvert, Excel demandera à l'utilisateur d'activer les macros. Les utilisateurs seront forcés de le faire car tout ce qu'ils verront est votre feuille de départ. Les autres feuilles seront cachées!
Pour que cette technique fonctionne, vous avez besoin de deux macros: Une macro masque tout sauf la feuille START à la fermeture du classeur et une autre macro qui affiche toutes les feuilles sauf la feuille START lorsque le classeur s'ouvre.
Commencez par vous attaquer aux actions qui doivent se produire lorsque le classeur se ferme.:
-
Activez Visual Basic Editor en appuyant sur ALT + F11 sur votre clavier
-
Dans la fenêtre Projet, recherchez le nom de votre projet / classeur et cliquez sur le signe plus en regard pour voir toutes les feuilles.
-
Cliquez sur ThisWorkbook.
-
Dans la liste déroulante Événement, sélectionnez l'événement BeforeClose.
-
Tapez ou collez le code suivant:
Private Sub Workbook_BeforeClose (Cancel As Boolean) 'Étape 1: Déclarer vos variables Dim ws As Worksheet' Étape 2: Afficher les feuilles de départ ("START"). Visible = xlSheetVisible 'Étape 3: Démarrer en boucle à travers toutes les feuilles de calcul Pour chaque ws dans ThisWorkbook. Worksheets 'Étape 4: Vérifiez chaque nom de feuille de calcul Si ws. Nom "START" Puis "Étape 5: Masquer la feuille ws. Visible = xlVeryHidden End Si 'Étape 6: Passer à la feuille de calcul suivante Etape suivante: Étape 7: Enregistrer le classeur ActiveWorkbook. Save End Sub
À l'étape 1, vous déclarez un objet appelé ws pour créer un conteneur de mémoire pour chaque feuille de calcul que vous parcourrez.
À l'étape 2, vous vous assurez que la feuille START est visible.
À l'étape 3, vous lancez la boucle, indiquant à Excel que vous souhaitez évaluer toutes les feuilles de calcul de ce classeur.
À l'étape 4, vous comparez simplement le nom START à la feuille en cours de mise en boucle. Cette étape garantit que les actions qui suivent sont appliquées à toutes les feuilles sauf la feuille START.
Si les noms de feuille sont différents, à l'étape 5, vous masquez la feuille en utilisant la propriété xlVeryHidden. Cette propriété non seulement masque la feuille mais empêche également l'utilisateur de la masquer manuellement en utilisant l'interface utilisateur.
Vous revenez en arrière pour obtenir la feuille suivante à l'étape 6.
À l'étape 7, une fois toutes les feuilles évaluées, la macro enregistre le classeur et se termine.
Maintenant, vous devez écrire une macro pour gérer toutes les actions qui doivent se produire lorsque le classeur s'ouvre:
-
Activez Visual Basic Editor en appuyant sur ALT + F11.
-
Dans la fenêtre Projet, recherchez le nom de votre projet / classeur et cliquez sur le signe plus à côté pour voir toutes les feuilles.
-
Cliquez sur ThisWorkbook.
-
Dans la liste déroulante Événement, sélectionnez l'événement Ouvrir.
-
Tapez ou collez le code suivant:
Private Sub Workbook_Open () 'Étape 1: Déclarer vos variables Dim ws As Worksheet' Étape 2: Commencer à parcourir toutes les feuilles de calcul Pour chaque ws Dans ThisWorkbook. Worksheets 'Étape 3: Afficher toutes les feuilles de calcul ws. Visible = xlSheetVisible 'Etape 4: Passer à la feuille de calcul suivante Etape 5: Masquer les feuilles de début ("START"). Visible = xlVeryHidden End Sub
À l'étape 1, vous déclarez un objet appelé ws pour créer un conteneur de mémoire pour chaque feuille de calcul que vous parcourez.
À l'étape 2, vous lancez la boucle, indiquant à Excel que vous souhaitez évaluer toutes les feuilles de calcul de ce classeur.
À l'étape 3, vous affichez la feuille en cours de bouclage. Cette étape affiche efficacement toutes les feuilles de calcul au fur et à mesure que chaque feuille est rendue visible.
Vous rebouclez pour obtenir la feuille suivante à l'étape 4.
Une fois que toutes les feuilles sont visibles, l'étape 5 masque la feuille de départ. Encore une fois, vous utilisez la propriété xlVeryHidden pour que l'utilisateur ne puisse pas afficher manuellement la feuille à l'aide de l'interface utilisateur.
Une fois les deux macros implémentées, vous aurez un classeur qui ne fonctionnera que si l'utilisateur active les macros!
