J'ai crée un petit fichier avec plusieurs macros. Ces macros sont associées à des boutons de commande qui permettent de les lancer
Les boutons de commande sont placés dans une Worksheet et non pas dans un Userform
Dans la structure cela donne ça:
Code :
Private sub Commandbutton1()
code...macro1
End Sub
Private sub Commandbutton2()
code...macro2
End Sub
Private sub Commandbutton3()
code...macro3
End Sub
Par souci de clareté, j'ai copié chacune de mes macro dans un module et je les appelle avec une fonction Call de la maniere suivante
Dans module1:
Code :
Sub macro1
code
End Sub
Cette manipulation ne marche pas. J'ai le message d'erreur suivant:
Erreur438 : Propriété ou méthode non géréé par cet objet Je crois que le problème est du à la propriété PRIVATE mais je ne sais pas comment contourner le problème
Merci d'avance pour votre aide
Message édité par Herisson75 le 29-11-2007 à 14:54:59
J'ai résolu mon problème (J'avais changé le nom d'un OptionButton sans changer le code...erreur stupide je m'en excuse)
En revanche j'ai une autre question toujours liées aux propriétés Private -Public et variables Static
Ma macro contient une sous-macro que j'appelle avec la fonction Call.
Je souhaite récupérer 3 variables à partir de cette sous-macro, mais les valeurs ne sont pas concervées après l'éxécution de la sous macro.
J'ai pourtant utilisée l'instruction Static???
Cela donne quelque chose comme:
Le CALL, oublie-le. C'est un vestige à remiser avec GOTO.
Les variables STATIC au contraire, c'est du code avancée. Alors je suppose que tu te fourvoies (Moi aussi je peux me tromper, hein )
Peut-on voir un extrait de code de Macro_Secondaire ?
Ton code dans macro_secondaire ne fait pas varié var1, var2 ni var3 mais à la sortie, ces variables sont modifiées Bizarre. =>Non, c justement ma macro secondaire, qui initialise Var1,2,3
Une fois, la macro secondaire terminée var1,2,3 sont systématiquement rénitialisée quoique je fasse.
Je suis revenu à Dim au lieu de private
J'ai enlevé le Call
Le problème demeure et persiste
Cette macro secondaire est appelée plusieurs fois dans mon programme par la suite.Je souhaite utiliser une macro secondaire pour alléger la macro principale.
Je peux me débrouiller sans, mais c de la curiosité
Je viens de comprendre mon erreur en relisant certains tutoriaux. C'est ce que je soupçonnais depuis le début, une procédure Sub ne renvoit pas de valeur....
En temps normal, j'aurais utilisé une procédure function mais comme j'avais trois Variables Var1,2,3 j'ai voulu faire le malin
Et comme on dit : Qui fait le malin tombe dans le ravin
Quelles valeurs ?
Ton code ne montre rien de tel !
Si tu parles de retour par valeur des paramètres, il va falloir "proposer nous un exemple simple de code qui reprend ton problème". Mais ça, je l'ai déjà dit.