Voir le flux RSS

Philippe Tulliez

VBA - Comment masquer une macro (procédure)

Noter ce billet
par , 07/10/2018 à 14h55 (331 Affichages)
Toutes les macros (procédures Sub) sont visibles dans la liste des macros sauf si elles ont au moins un argument

Pour diverses raisons il est préférable d'en cacher certaines pour éviter par exemple que l'utilisateur lance une macro qui doit être lancée par une autre procédure.

Comment cacher une procédure Sub ?

Il y a plusieurs possibilités

  1. Si la procédure est dépourvue d'argument, en ajouter un qui est optionnel.
    Exemple : Sub maMacro(Optional monArgument)
  2. Déclarer la procédure comme privée (Mot clé Private)
    Exemple : Private Sub maMacro()
    La procédure n'apparaît plus dans la liste mais elle n'est plus appelable depuis un autre module
  3. Reste la dernière et meilleure solution, déclarer le module privé.
    Il suffit de placer cette déclaration Option Private Module en tête de module (par exemple en dessous de la déclaration Option Explicit)

Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog Viadeo Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog Twitter Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog Google Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog Facebook Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog Digg Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog Delicious Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog MySpace Envoyer le billet « VBA - Comment masquer une macro (procédure) » dans le blog Yahoo

Catégories
VBA Excel

Commentaires

  1. Avatar de patricktoulon
    • |
    • permalink
    bonjour philippe tulliez
    une autre solution serait d'y mettre bel est bien un argument mais optional qui servira a rien et surtout predefinir un defaut
    exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub test(Optional x As Long = 0)
    '....
    End Sub
    elle n'apparatra pas dans la liste par contre ATTENTION !!! si tu predefinie pas le (par defaut"=0")elle apparaitra dans la liste

    comme un optional n'est pas obligatoire dans l'apel on l'apellera sans argument

    comme ca tu laisse ton module sans private