Private Sub

  • Initiateur de la discussion Vik Leroy
  • Date de début
V

Vik Leroy

Guest
Bon j'ai résolu mon problème, qui en a généré un autre.

Maintenant que toutes mes procédures ("Sub") sont en Private, le programme se plante quand une procédure veut en appeler une autre.
Visiblement, il faudrait les déclarer quelque part dans la procédure appelante.

Comment faire ?

Merci
Vik
 
T

Ti

Guest
si tu changes de fil entre temps, on ne souviendra plus de ta première question !
Déclarer toutes les procédures en Private n'est pas une bonne idée, puisqu'ainsi tu ne peux pas faire d'appels inter-modules. Donc, le mieux si tu ne sais pas quand déclarer une procédure Private ou pas, c'est de la laisser telle quelle (donc vire les Private)
Par contre, si tu ne veux pas que tes procédures apparaissent dans l'interface d'Excel, tu ajoutes en début de module

Option Explicit 'devrait être déclaré SYSTEMATIQUEMENT
Option Private Module
 
V

Vik Leroy

Guest
Comment on déclare une procédure alors ?
Parce que j'utilisais la commande "Call" qui m'appelait un autre module, et maintenant il me gueule dessus qu'il attend une variable ou une procédure et non un module après mon Call.
Ca marchait bien avant. Faut déclarer l'autre module quelque part ? Comment ?

Vik
 
T

Ti

Guest
eh oui, travailler en option explicit t'oblige à déclarer toutes tes variables. Bon, dans un premier temps, tu peux supprimer cette déclaration, ça remarchera comme avant, mais négliger de déclarer tes variables est source de bugs vicieux difficiles à pister, c'est pourquoi il vaut mieux toujours travailler en Option Explicit...
Conclusion, je te conseille de te forcer à utiliser cette option pour tes futurs programmes.
 
V

Vik Leroy

Guest
Oui, j'ai pisté un bug pendant un moment parce qu'une variable ne portait pas le même nom.

Comme les procédures sont limitées à 64k, comment on fait pour faire un Call à une autre procédure en Option Explicit ?
 
G

G'Claire

Guest
Vik,

Une hypothèse, n'est tu pas entain d'appeler un module plutot qu'une procédure.

Du genre Nom de module AAAA

La procédure

Private sub Le nom de la procédure ()

Bla, bla, bla

End Sub

Ensuite pour appeler ta procédure

call Le nom de la procédure

et non pas

Call AAAA

Et je ne sais même pas si Excel accepte que tu nomme le module du même nom que la procédure, a voir.

Salut, G'Claire
 

Discussions similaires

Statistiques des forums

Discussions
312 684
Messages
2 090 917
Membres
104 699
dernier inscrit
Azyra