Rendre une fonction VBA inaccessible depuis le classeur
Résolu
jespscej
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
jespscej Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
jespscej Messages postés 67 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis actuellement en train de programmer un certain nombre de fonctions en VBA dans un fichier Excel. Je parle de fonctions Function et non de macros Sub.
Toutefois, certaines de ces fonctions servent uniquement à être appelées dans d'autres (je préfère avoir plein de petites fonctions qu'une seule énorme) et n'ont aucun intérêt à être utilisées seules.
Aussi je souhaiterais savoir s'il est possible de les rendre invisibles et inaccessible depuis le classeur Excel. Particulièrement, il serait bon qu'elles n'apparaissent pas dans les fonctions personnalisées.
Merci de votre aide. :-)
Je suis actuellement en train de programmer un certain nombre de fonctions en VBA dans un fichier Excel. Je parle de fonctions Function et non de macros Sub.
Toutefois, certaines de ces fonctions servent uniquement à être appelées dans d'autres (je préfère avoir plein de petites fonctions qu'une seule énorme) et n'ont aucun intérêt à être utilisées seules.
Aussi je souhaiterais savoir s'il est possible de les rendre invisibles et inaccessible depuis le classeur Excel. Particulièrement, il serait bon qu'elles n'apparaissent pas dans les fonctions personnalisées.
Merci de votre aide. :-)
A voir également:
- Rendre une fonction VBA inaccessible depuis le classeur
- Fonction si et - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Comment rendre un fichier moins lourd - Guide
- Récupérer un compte facebook piraté inaccessible - Guide
- Fonction miroir - Guide
4 réponses
Bonjour Maurice et merci de ta réponse.
Cependant ça ne résout pas mon problème !
En effet, mettre Private devant la fonction me la rend inaccessible depuis les autres modules, alors que j'ai justement dans ces autres modules des fonctions qui y font appel. Reste la solution de mettre toutes les fonctions dans le même module mais ça casse un peu mon organisation...
Mais, point positif : la fonction devient bien invisible dans les fonctions personnalisées dans l'assistant de fonctions. Elle reste cependant utilisable si je la rentre manuellement dans une cellule (ce que j'aimerais éviter...).
Je voudrais garder la possibilité d'appeler une fonction depuis un module vers un autre mais qu'elle soit inexistante du point de vue du tableur.
Après, peut-être que j'en demande trop !
Merci encore en tout cas. :-)
Cependant ça ne résout pas mon problème !
En effet, mettre Private devant la fonction me la rend inaccessible depuis les autres modules, alors que j'ai justement dans ces autres modules des fonctions qui y font appel. Reste la solution de mettre toutes les fonctions dans le même module mais ça casse un peu mon organisation...
Mais, point positif : la fonction devient bien invisible dans les fonctions personnalisées dans l'assistant de fonctions. Elle reste cependant utilisable si je la rentre manuellement dans une cellule (ce que j'aimerais éviter...).
Je voudrais garder la possibilité d'appeler une fonction depuis un module vers un autre mais qu'elle soit inexistante du point de vue du tableur.
Après, peut-être que j'en demande trop !
Merci encore en tout cas. :-)
J'ai trouvé la réponse donc je la mets si ça peut aider un suivant.
Il faut déclarer Option Private Module en haut de module puis mettre Public devant la fonction à cacher dans le classeur.
Ainsi, la fonction :
- est appelable d'un module à l'autre ;
- n'est pas visible dans l'Assistant Fonction et dans les fonctions personnalisées du classeur ;
- reste utilisable dans le classeur pour peu que l'on connaisse son nom exact et ses arguments exacts et dans le bon ordre.
Je mets le sujet en Résolu.
Merci Maurice de ta deuxième réponse qui me rapprochait de la solution ; la troisième aurait été la bonne, j'en suis sûr ! :-)
Il faut déclarer Option Private Module en haut de module puis mettre Public devant la fonction à cacher dans le classeur.
Ainsi, la fonction :
- est appelable d'un module à l'autre ;
- n'est pas visible dans l'Assistant Fonction et dans les fonctions personnalisées du classeur ;
- reste utilisable dans le classeur pour peu que l'on connaisse son nom exact et ses arguments exacts et dans le bon ordre.
Je mets le sujet en Résolu.
Merci Maurice de ta deuxième réponse qui me rapprochait de la solution ; la troisième aurait été la bonne, j'en suis sûr ! :-)