Masquer le nom des macros

Le
Jac
Bonjour à tous,

y a-t-il un moyen de ne pas faire afficher avec ALT + F8 la liste des macros
disponibles mais de pouvoir quand même les lancer par un bouton ou une macro
évènementielle (Private Sub Workbook_Open(), ) ?

Car si je mets un "Private" devant le nom de ma macro, je ne la montre plus,
mais quand je veux la lancer lors de l'ouverture du classeur, le vba me dit
"Sub ou Fonction non définie".

Merci d'avance à qui me mettra sur la voie.

Jac
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
anonymousA
Le #4354721
Bonjour,

si ta macro appelée ff est dans le module1 de ton classeur, tu peux
affecter à un bouton de la BO formulaires le texte suivant Module1.ff
dans le refedit "Nom de la macro" et du coup ca marchera même si ff
est déclarée comme Private.

A+

On 8 mar, 10:07, "Jac"
Bonjour à tous,

y a-t-il un moyen de ne pas faire afficher avec ALT + F8 la liste des mac ros
disponibles mais de pouvoir quand même les lancer par un bouton ou une macro
évènementielle (Private Sub Workbook_Open(), ...) ?

Car si je mets un "Private" devant le nom de ma macro, je ne la montre pl us,
mais quand je veux la lancer lors de l'ouverture du classeur, le vba me d it
"Sub ou Fonction non définie".

Merci d'avance à qui me mettra sur la voie.

Jac


MichDenis
Le #4354611
Voici une façon de procéder, il y a bien sûr des variantes :

Dans le haut des modules STANDARD, tu inscris en première ligne
ceci : Option Private Module
et toutes tes macros seront non accessibles que tu aies mis
le mot private ou non dans la ligne de déclaration de ces dernières

Attention, à partir de la fenêtre des macros (Alt + F8), elles ne seront
pas visibles mais si tu te souviens de leur nom, tu pourras quand même
les appeler en tapant leur nom dans la boîte de saisie

L'expression "Option Private Module" ne peut pas être utilisé dans un module de classe
que sont les modules des feuilles ou le ThisWorkbook. La conséquence de vouloir
restreindre leur visibilité, c'est que leur appel à partir d'un autre module ne peut
plus s'effectuer seulement par la mention de leur "NOM" dans la procédure appelante...
sauf si la procédure appelée appartient au même module que la procédure appelante.

Ce qui suit te permettre d'outre-passer cette restriction :

Si la macro appelé est dans un module standard :
"Test1" est le nom de la macro appelée
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!test1"
Application.Run LaMacro

Si la macro appelé est dans un module feuille ou dans le ThisWorkbook
La seule différence est que tu dois ajouter le nom du module où la
macro est située :
"Test1" est le nom de la macro appelée
"Feuil1" -> Module feuille où est la macro
Dim LaMacro As String
LaMacro = "'" & ThisWorkbook.Name & "'!Feuil1.test1"
Application.Run LaMacro


"Jac" Bonjour à tous,

y a-t-il un moyen de ne pas faire afficher avec ALT + F8 la liste des macros
disponibles mais de pouvoir quand même les lancer par un bouton ou une macro
évènementielle (Private Sub Workbook_Open(), ...) ?

Car si je mets un "Private" devant le nom de ma macro, je ne la montre plus,
mais quand je veux la lancer lors de l'ouverture du classeur, le vba me dit
"Sub ou Fonction non définie".

Merci d'avance à qui me mettra sur la voie.

Jac
Publicité
Poster une réponse
Anonyme