Cacher les macros

Luki

XLDnaute Accro
Bonjour le Forum,

Je voudrais rendre certaines macros innaccessibles à l'utilisateur.( à partir du menu Xl/ macro/ exécuter)


Y a t'il un moyen de les masquer ou de masquer les module ?


Merci d'avance

Luki
 

Ti_

Nous a quitté
Repose en paix
tu as deux solutions pour ça :

- tu déclares tes procédures 'Private' et alors elles ne seront plus visibles de l'extérieur. C'est la façon la plus courante, mais si ton programme comporte plusieurs modules, certaines procédures nécessitent d'être appelées depuis d'autres modules, et tu dois alors les déclarer Public donc :

- tu mets tout en haut de ton module (juste en dessous de Option Explicit, qui devrait être obligatoire!) Option Private Module.

Voilà, tes macros seront devenues invisibles depuis l'interface d'Excel, même si tu les déclares Public.

Note cependant que ces macros restent accessibles depuis le menu Macros d'Excel, il faut alors taper leur nom directement dans la zone de saisie pour les appeler. A quoi cela peut-il bien nous être utile ? Eh bien, on peut en profiter pour mettre dans notre programme des fonctions 'non documentées' : modification d'un mot de passe, modification d'options dans le programme, réinitialisation d'un classeur de travail etc. qu'il n'est pas forcément prudent de laisser à disposition de l'utilisateur.
J'utilise très souvent cette astuce dans mes programmes destinés à un usage pro.
 

ficus3

XLDnaute Nouveau
Re : Cacher les macros

Bonjour,

merci pour l'astuce c'est exactement ce que je cherchais.
Maintenant, j'ai plus tordu:
j'ai mis un raccourci sur une macro, type "Ctrl+P"
mais cette macro est rendu invisible pour tous, via Option Private Module

Résultat, le raccourci ne marche pas ??!!

Comment puis-je régler ça ?

David
 
G

Guest

Guest
Re : Cacher les macros

Bonjour le fil,

@Ficus, Pasqi un autre truc possible:

D'abord soyez conscient que tous ces trucs ne rendent les macros invisibles qu'aux utilisateur qui ne connaissent pas vba.

Dans un module ordinaire: (Sans Private Module pour que le raccourci fonctionne)

Sub MaMacro(Optional strBidon as string)
......
End Sub

Le simple fait de mettre un paramètre Optionel bidon cachera la macro aux utilisateurs.

A+
 

Pasqi

XLDnaute Junior
Re : Cacher les macros

Bonjour Hasco,

J'avais déjà essayé avec ce que tu proposes, mais le raccourci ne fonctionne pas non plus. J'ai rééssayé, mais sans succès.

Voici mon essai :
Code:
Sub MaMacro(Optional strBidon As String)
MsgBox "bonjour"
End Sub

Cela fonctionne sans "Optional strBidon As String", mais dès que tu le remets, ça ne va plus.

Par contre, mettre un bouton déclencheur de macro fonctionne. D'ou ma question, peut-on mettre dans une cellule un bouton "invisible" ? il suffit de cliquer sur la cellule et la macro se déclenche ?

Merci d'avance.

Bàt
 
G

Guest

Guest
Re : Cacher les macros

Re,

Chez moi cela fonctionne.

Pour la deuxième question pas la peine de mettre un bouton. Si tu dois déclencher la macro sur la sélection d'une cellule par exemple A1:

Dans le module de code de la feuille: (click-droit sur le nom de l'onglet/ visualiser le code)

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address(0, 0) = "A1" Then Call MaMacro
End Sub

Où MaMacro est le nom de la macro a appeler.

Essaie et si cela ne va pas joint un fichier test avec ce que tu aura fait.
A+
 

ficus3

XLDnaute Nouveau
Re : Cacher les macros

bonjour,

J'ai meme résultat que Pasqi, ça veut pas.
J'ai une macro qui active les protections de mes feuilles, à l'ouverture
et une qui otes ces protections pour faire un tri.
Elles sont caché dans VBA (Option Private...)

Je voudrai donné un accès simple (raccourci clavier) pour les qq personnes qui ont droit en écriture dans ce classeur.
Bien sure, VBA est aussi consigné, par un mot de passe.

L'idée de mettre un bouton invisible ne me branche pas trop....

Avez vous d'autre test, svp ?
Merci
 

Pasqi

XLDnaute Junior
Re : Cacher les macros

Hasco,

Cela avance, cela semble fonctionner.
Sans bouton, mais en cliquant sur une cellule, cela me convient.
Ficus, je commence à me dire que c'est la seule solution... car je cherche et ne trouve rien d'autre.

Le code qui m'interesse est le déverouillage et le verrouillage de toutes les feuilles en une fois.
Cela fonctionne, pour le verrouillage, en cliquant sur A1 (dans toutes les feuilles) mais pour ajouter le déverouillage, ça ne va pas, je m'emmèle les pinceaux.

Il y a sans doute plus simple, mais j'ai mis le même code dans chaque feuille pour que cela fonctionne.
Quand on le met dans "worksheet", ça ne fonctionne pas.

Si ça ne te semble pas clair, n'hésite pas à me le dire.

Bien à toi

Et merci pour l'aide.

Pasqi
 

Pièces jointes

  • protection cellules ok.zip
    15.3 KB · Affichages: 239

ficus3

XLDnaute Nouveau
Re : Cacher les macros

Bonjour,

N'étant pas très doué sur excel je vais prendre ce qui s'offre à moi.
Je met une case magique pour simplifier l'Unprotect.

J'ai aussi une erreur pour Re-vérouillé le tout, mais c'est moins génant car je verrouille et j'enregistre à la fermeture, donc pas de réèl besoin d'astuce.

Merci pour votre aide !
 
G

Guest

Guest
Re : Cacher les macros

Re,

Pasqi, ficus, voici une autre façon de faire.

Mettre en A1 "Pasqi","Ficus","Hasco" ou "Tintin" et les feuilles seront déprotégées. Dans tous les autres cas ou A1 change de valeur les feuilles seront protégées.

Les macros ne sont plus vues de l'utilisateur.

A+
 

Discussions similaires

Réponses
9
Affichages
546
Réponses
2
Affichages
323

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz