Appeler un module dans un userform

Bonjour tout le monde,

Je suis actuellement coincé sur Excel 2007.

J'ai une macro XXX dans un module1, une autre YYY dans un module 2. Ces deux macro sont trop longues pour etre rassemblées.

Ensuite, j'ai créé un userform dont une partie du code est:

If .....

'appeler la macro XXX

Else

If.....

'appeler YYY

Le probleme est de savoir comment appeler ces deux macros. Si je copie le code de XXX dans le code du userform, alor cela fonctionne, mais c'est stupide et je ne peux pas avoir les deux macros en meme temps du fait de leur taille.

Quelqu'un peut-il m'aider svpppppppp.

Merciiiiiiiiiiiiiiii ^^

Bonjour et bienvenue,

Je ne suis pas sûr d'avoir compris ton pb quand tu parles d'Userform...

Une userform contient des listes déroulantes, des cases à cocher, des rubriques infos, ect...

Si tu veux appeler une macro XXX ou YYY, utilise l'instruction ci-après :

CALL XXX ou CALL YYY

Amicalement

Dan

Edit Dan : si ton pb est terminé, n'oublie pas de mettre RESOLU sur le fil. Explications ici --> https://forum.excel-pratique.com/viewtopic.php?t=13

Oui un userform contient des listes etc, mais à ces listes peut etre associer un code. Dans celui ci j'ai mes conditions appelant mes macro( qui se trouvent dans des modules).

J'ai essayer avec la fonciton Call YYY ou Call XXX mais il ne les trouve pas car elles sont dans les modules.

la fonciton Call marche d'un module a un autre mais pas d'un userform a un module.

Bonjour,

Bonjour, Dan...

Pierre, il n'y a aucun problème, que tu appelles une procédure ou une autre, à partir de ton USF.

Cependant, si tu as des variables à prendre en compte, je te conseille de les déclarer en "Public", dans l'en-tête du (ou des) module(s)

Public Ma_Variable As String
Public Une_autre As Long

Sub XXX()
'code
End Sub

Et le fait de les appeler par Call est une bonne chose, la position de la procédure étant définie dès la compilation (Débogage/Compiler)

Donc si ta procédure n'est pas déroulée, c'est que tu as un autre souci....

Montre le code de l'usf (celui qui appelle l'une ou l'autre procédure), si la déclaration en Public n'a pas fonctionnée

Bonne journée

Je viens de cerner un peu mieux le probleme. La macro est appelée, mais dans cette macro, j'ai des conditions selon la valeur des combobox du userform. Et c'est la que ça coince, une fois dans la macro, il ne reconnai plu les combobox, donc rien ne se passe.

[If ComboBox1 = "chauffage ecs" Then

...instructions...

End if]

Il n'y a pas d'erreur de frappe, j'ai bien vérifié.

Comment faire?

Merci de l'aide que vous m'apportez [/code]

ComboBox1.Value=...

ou si tu as plusieurs userform

Nom_de_ton_userfor.ComboBox1.Value=...

je crois que c'est ça je suis novice en codage VB

re,

Il faut qu'avant de faire appel à ta macro XXX, tu enregistres une variable avec la valeur se trouvant dans la combobox.

Comme l'a dit Cousinhub tu mets en entête de module :

Public mavariable as string

Puis dans la macro de l'userform juste avant le CALL XXX tu mets :

mavariable = Combobox1.value

Ensuite tu modifies le code dans la macro XXX comme suit :

If mavariable = "chauffage ecs" Then 
...instructions... 
End if

Amicalement

Dan

J'ai compriiiiiiiiii !!!

Merci merci merci merci.

Si j'ai d'autre problème, je vous recontacte.

Encore Merci

Oups...c'est encore moi dsl. J'ai un nouveau probleme, il considere mes variables comme "ambigue"....? J'ai tenté de les nommer autrement mais rien a faire.

Que dois-je faire?

Merci

alors la . . . essaye d'enregistrer ton prog sur internet et donne le lien au pire vais look

Je ne peux pas l'envoyer, c'est un programme a donnees confidentielles. il rentre dans le cadre de mon travail et je ne suis pas autorisé à le divulguer pour le moment, secret industriel oblige. Je suis désolé.

re,

mes variables comme "ambigue

Vérifie que tu n'as pas deux fois le même nom de variable.

Amicalement

Dan

PS : oublie pas le RESOLU....

C'est bon, tout fonctionne. Merci beaucoup. Il s'agissait de nom de variable qui existaient deja, j'ai tout modifié et tout marche correctement.

Je vous remercie vraiment de m'avoir répondu, surtout aussi rapidement.

Je suis impressionné par votre connaissance, vous avez tout de suite trouver la solution.

A bientot,

Pierro

Je pensais la même chose que toi Nad-Dan bonne journée pierro et Nad-Dan une idée pour mon problème je tourne en rond

Rechercher des sujets similaires à "appeler module userform"