Entrer et sortir d'une macro d'un fichier à un autre

Lancelot

XLDnaute Nouveau
Hello tout le monde,

Je préfère prévenir, quitte à me tirer une balle dans le pied, le sujet est prise de tête, LOL.

J'ai 3 fichiers, A, B et C qui me permettent de suivre des évènements sur des équipements tout au long de l'année.
Dans chacun de ces fichiers j'ai écris des zolies macros pour simplifier la tache à chacun de mes utilisateurs.

J'ai créé des liens dans ces macros pour pouvoir copier, lorsque l'utilisateur coche une checkbox, le dit évènement dans un des autres fichiers. En d'autres termes:

Si fichier A est en cours de saisie et que l'utilisateur coche fichier B alors à la fin de la saisie dans fichier A, le fichier B s'ouvre avec les éléments déjà renseignés dans le fichier A qui peuvent alors éventuellement être modifiés et/ou complétés par le même utilisateur

Si fichier B est en cours de saisie et que l'utilisateur coche fichier A alors à la fin de la saisie dans fichier B, le fichier A s'ouvre avec les éléments déjà renseignés dans le fichier B qui peuvent alors peuvent éventuellement être modifiés et/ou complétés par le même utilisateur

Si fichier C est en cours de saisie et que l'utilisateur coche fichier B alors à la fin de la saisie dans fichier A, le fichier B s'ouvre avec les éléments déjà renseignés dans le fichier A qui peuvent alors peuvent éventuellement être modifiés et/ou complétés par le même utilisateur

etc... avec les autres cas possible.

Jusque là tout va bien pour mes macros, elles fonctionnent bien : pas de problème.

Par contre, dès l'instant où l'utilisateur coche les deux fichiers, la macro ne traitent que la première checkbox rencontrée dans ma ligne de code et s'arrête une fois le fichier associé traité.

C'est comme si excel sortait de la macro du fichier en cours de saisi, traite le fichier destination et ne revient pas dans le fichier d'origine pour finir de lire le reste de mon code.

Exemple:
Comportement attendu:
Fichier A ouvert et en cours de saisi, checkbox fichier B et C cochée.
Fin de traitement du fichier A, ouverture et traitement du fichier B.
Fin de traitement du fichier B, fermeture du fichier B,
Ouverture et traitement du fichier C.
Fin de traitement du fichier C, fermeture du fichier C et retour dans fichier A qui n'avait pas été fermé.

Comportement réalisé:
Cas 1
Fichier A ouvert et en cours de saisi, une seule checkbox cochée = fichier B.
Fin de traitement du fichier A, ouverture et traitement du fichier B.
Fin de traitement du fichier B, fermeture du fichier B,
Retour dans fichier A qui n'avait pas été fermé

Cas 2
Fichier A ouvert et en cours de saisi, une seule checkbox cochée = fichier C.
Fin de traitement du fichier A, ouverture et traitement du fichier C.
Fin de traitement du fichier C, fermeture du fichier C,
Retour dans fichier A qui n'avait pas été fermé.

Cas 3
Fichier A ouvert et en cours de saisi, checkbox fichier B et C cochées.
Fin de traitement du fichier A, ouverture et traitement du fichier B.
Fin de traitement du fichier B, fermeture du fichier B,
Retour dans fichier A qui n'avait pas été fermé

J'imagine à quel point cela doit être compliqué à interpréter mais si une bonne âme a une idée pour qu'à partir du fichier B je revienne dans le fichier A pour interpréter le reste de mon code, je lui serais vraiment très reconnaissant.

Ça fait 3 jours que je suis dessus et je ne sais pas quoi faire.

En attendant une bonne idée, je continue de me gratter la tête :confused: et de faire des tests.
 

Lancelot

XLDnaute Nouveau
Re : Entrer et sortir d'une macro d'un fichier à un autre

Oui, j'imagine bien. Désolé.

Dans le Userform il y a 4 données qui sont communes aux trois fichiers: un optionbutton parmis 4, un champ de référence, un champe de titre, un champ de texte libre.

Ensuite, les userform différent: il y a une multitude de coche qui n'ont rien à voir entre les fichiers.

Je teste en ce moment le fait de reproduire les trois userform dans les trois fichiers... Pas classe, mais peut-être que ça marchera.
 

Lancelot

XLDnaute Nouveau
Re : Entrer et sortir d'une macro d'un fichier à un autre

Hello le fil,

Voilou, j'ai réussi.
Merci pour tes idées! Notamment celle de remplacer la commande application.run.
Finalement, j'ai copié et recodé mes lignes dans trois UF différents et ceci dans les trois fichiers différents, ca fait 9 UF au total. Mais bon avec les exports d'UF ça va facilement.

je te remercie également pour l'exemple de code que tu as donné car j'ai appris à ajouter des variables sur des noms de fichiers et des chemins ce qui me permettra pour les versions futures à aller plus vite dans les transitions local/réseau.

A bientôt j'espère.
 

Discussions similaires