Appel d'une procédure d'un UserForm à l'autre

Bonjour,

Je suis actuellement en train de créer un fichier dans lequel beaucoup de ligne sont répétitives.

J'ai un premier UserForm dans lequel j'ai une procédure qui s'appelle ResltatDataUF2 :

Sub ResultatDataUF2()

'Ici j'ai tout le contenu de ma procédure

End Sub

J'ai ensuite besoin de réutiliser cette procédure dans un autre UserForm. Dans ce second UserForm je voulais créer une Procédure ResultatDataUF3 dans laquelle j'appelai ma procédure ResultatDataUF2 + des données en plus

Sub ResultatDataUF3()

'Import des données Data UserForm2
ResultatDataUF2

'Copie du nom des scénarios utilisés dans la feuille "Résultats Data"
ThisWorkbook.Worksheets("Résultats Datas").Range("U1") = Me.ComboBox3.Value

End Sub

Sauf que lorsque j'exécute ma macro, il ne reconnaît pas ResultatDataUF2.

Comment est il possible d'utiliser une procédure, déclarée dans un Userform N°1 , dans un UserForm N°2 ?

Je sais pas si je suis très clair dans mes propos.

Salut,

Je trouvais ton idée de placer une macro 'normale' dans le code d'un UserForm au lieu de la placer dans un module un peu bizarre et j'ai voulu essayer. Et bien ça fonctionne. Dans le fichier ci-joint j'ouvre le UserForm1 depuis lequel j'appelle une macro placée dans le UserForm2.

Donc il faudrait que tu nous montres ton fichier si tu veux que l'on essaie de voir ce qui ne joue pas chez toi.

Cordialement.

164classeur2.xlsm (17.87 Ko)

Dans ton exemple la macro "salut" doit être placée dans le userform + dans le module ?


J'ai voulu mettre ma procédure dans un module mais comme j'utilise "me.combobox1" cela n'est pas possible

Bonjour ?

Merci ?

Désolé, mais je me suis mélangé les pinceaux. J’ai d’abord placé la macro ‘Salut’ dans un module et puis je l’ai placée ensuite dans le UserForm2, sans me rendre compte que je ne l’avais pas effacée dans le module

Donc effectivement qu’une macro placée dans le code d’un UserForm n’est pas à sa place, comme je t’ai indiqué que je le présumais au départ.

Donc je pense que si tu veux une solution à ton problème, tu devrais vraiment nous fournir ton fichier.

A te relire.

Bonjour,

Merci d'essayer de m'aider.

J'ai déplacé mes macros dans un module afin d'être plus logique. Le souci est que dans mes macros j'ai des "me.combobox1.Value" qui ne lui plaise pas du tout.

J'ai l'erreur "Utilisation incorrecte du mot clé Me".

Mon fichier est à priori trop volumineux pour être hébergé

Merci d'avance.

Re-bonjour,

Yvouille a écrit :

Donc il faudrait que tu nous montres ton fichier si tu veux que l'on essaie de voir ce qui ne joue pas chez toi.

C'était hier à 17 heures

Yvouille a écrit :

Donc je pense que si tu veux une solution à ton problème, tu devrais vraiment nous fournir ton fichier.

C'était hier à 20 heures

L’instruction ME (MOI en français) se rapporte à la forme dans laquelle se trouve le code où elle est inscrite. Donc si tu sors l’instruction ME du code d’une forme pour la placer dans un module, Excel ne peut pas savoir à quelle forme ça se rapporte.

Je pense que la résolution de ton problème passe en voyant quelles instructions doivent rester dans quels codes et voir comment ces différents codes doivent s’appeler les uns les autres afin que le tout fonctionne.

Je crois que je l’ai déjà dit, mais ça va parfois mieux en le répétant : Je pense que si tu veux une solution à ton problème, tu devrais vraiment nous fournir ton fichier

Amicalement.

Bonjour,

Merci pour ton aide. Comme je l'ai dit plus haut, je ne peux pas envoyer mon fichier sur le forum car il fait plus de 300ko.

Néanmoins grâce à tes informations j'ai solutionné mon problème. En effet j'utilisais (stupidement) Me., excel ne pouvait donc pas savoir à quoi je faisais référence. J'ai donc modifié Me.Combobox1.Value par UserForm1.Combobox1.Value tout simplement.

J'ai rencontré ensuite un autre soucis qui m'a obligé à revoir tout mon code. J'ai maintenant quelque chose de propre, simple à modifier et qui fonctionne.

Merci d'avoir pris le temps de m'aider.

Pour une prochaine fois, si ton fichier est trop gros, essaie de réduire le nombre de lignes (si ton fichier comporte 36'000 mais que 10 suffisent pour démontrer ton problème, effaces-en 35'990), supprime les feuilles inutiles, etc. Si ça ne passe toujours pas, compresse-le. S’il fait toujours plus de 300 Ko, essaie de passer par le site CJoint http://cjoint.com/ Enfin si ça ne passe toujours pas, tu peux l’envoyer par courriel.

Cordialement.

Rechercher des sujets similaires à "appel procedure userform"