Différence entre SUB et PRIVATE SUB

misslilie18

XLDnaute Nouveau
Bonsoir,

Quelle est l'utilité exacte de déclarer en "private" une procédure?
J'ai lu sur un site que cela permettait de restreindre la procédure au module mais je ne comprends pas exactement ce que cela signifie...

Quelqu'un pourrait-il m'aider?

Merci d'avance
 

skoobi

XLDnaute Barbatruc
Re : Différence entre SUB et PRIVATE SUB

Bonsoir,

Déclarer en "Private" une procédure permet également de ne pas la faire apparaître dans la liste des macros lors de l'exécution d'une macro via le menu macro ou Alt+F8.

cela permettait de restreindre la procédure au module mais je ne comprends pas exactement ce que cela signifie.
Ceci veut dire que cette procédure (ou macro) ne peut être appelée que par une autre procédure se trouvant dans le même module et non par une procédure se trouvant dans un autre module.

Espérant avoir éclairé ta lanterne.
 

Orodreth

XLDnaute Impliqué
Re : Différence entre SUB et PRIVATE SUB

Bonjour misslilie, skoobi, le fil, le forum

Le fait de déclarer une procédure ou une fonction en private implique que tu ne peux l'appeler que dans le module où elle est implémentée.

En fait, c'est une question de conception ou d'implémentation.

Si ta procédure fait partie intégrante de ton programme, et qu'elle articule les informations, elle doit être déclarer soit "Vide", soit public (pour que tout le monde puisse y avoir accès)

En revanche, si tu ne t'en sers que pour simplifier le code (exemple: une fonction personnalisé qui renvoie une cellule), il vaut mieux la déclarer private pour qu'elle ne puisse être appelée depuis l'extérieur.

Dans l'idée, c'est ça, mais je me suis peut-être mal exprimé, n'hésite pas à demander si tu as besoin d'autres explications.

Cordialement,
thomas
 

misslilie18

XLDnaute Nouveau
Re : Différence entre SUB et PRIVATE SUB

Bonjour et merci pour les réponses que vous avez tenté de m'apporter!
Alors, voici ce que j'ai compris:
lorsqu'on déclare une macro en "private". Le nom de ma macro n'apparaîtra pas dans Outils/ Macro / Macros .... (Alt + F8)
Concrètement j'avais pu le constater lorsque pour me dépanner, PierreJean m'avais transmis un fichier qui comprenait une macro private, celle-ci n'apparaîssait pas dans (Alt + F8) et pour l'intégrer dans mon fichier, j'ai du créer un nouvelle macro dans mon fichier et faire un copier coller du code de sa macro, situé dans son fichier Affichage / Barre d'outils / Boîte à outils Contrôles / Visualiser le code.
Mais alors ce que je ne sais pas c'est "comment appeler de l'extérieur une macro qui n'a pas été déclarer en private"?
 

misslilie18

XLDnaute Nouveau
Re : Différence entre SUB et PRIVATE SUB

Bah, finalement je ne sais pas trop...
Suite à la phrase de Orodreth, je me suis imaginée "un autre fichier"
En revanche, si tu ne t'en sers que pour simplifier le code (exemple: une fonction personnalisé qui renvoie une cellule), il vaut mieux la déclarer private pour qu'elle ne puisse être appelée depuis l'extérieur.

Je crois que j'ai besoin d'exemple concret pour comprendre ...:eek:
 

skoobi

XLDnaute Barbatruc
Re : Différence entre SUB et PRIVATE SUB

Re,

voici un exemple qui permet d'executer la macro "macro1" (qui ne doit pas être "Private Sub") dans le fichier "fichier1" (qui doit être ouvert):

Code:
 Application.Run "'fichier1.xls'!Module1.Macro1"
Bien faire attention à la synthaxe: " (guillemet) puis ' (apostrophe).
 

Discussions similaires

Réponses
16
Affichages
479
Réponses
5
Affichages
343
Compte Supprimé 979
C

Statistiques des forums

Discussions
312 105
Messages
2 085 350
Membres
102 870
dernier inscrit
Armisa