Bouton d'appel des procédures

Bonjour à tous

J’ai écrit des procédures en VBA qui fonctionnent bien, quand je les lance manuellement une par une à partir de l’éditeur VBE.

Parmi ces procédures certaines sont des procédures générées par l’application.

Une fois, les procédures au point, j’ai créé un Bouton Activex , pour lancer automatiquement et séquentiellement l’ensemble des procédures.

Ca fonctionne bien jusqu’au moment où l’on arrive à l’appel de la première procédure générée qui vient d’être créée par l’applicatif (on n’entre pas dans la procédure générée), Excel se déconnecte, et se relance, mais avec désactivation des macros. (Sans aucun message)

Après de multiples recherches, je n’ai rien trouvé et je n’ai pas de pistes. J’ai fait des tests en ajoutant des Wait, entre la procédure qui génère le code et le lancement de ce code, mais ça ne donne rien.

Quelqu’un aurait-il une explication ou des pistes à explorer ?

Pour illustrer mon propos, je joins le code appelé, lorsque l'on clique sur le Bouton, ainsi qu'un exemple de code généré.

Merci à vous pour votre aide.

Bien cordialement

Zar78

Private Sub ARC_Btn200_Enchainement_Complet_Click()

' ATTENTION TOUS LES MODULES DOIVENT EXISTER (Voir ceux qui seront générés)'

' Nom des procédures

Call ARC_Module10Exec

Call ARC_Module20Exec

Call ARC_Module30Exec

Call ARC_Module40Exec 'Code générant

Call ARC_Module40ExecGenere 'Code généré c'est ici que ça dysfonctionne

Call ARC_Module60Exec 'Code générant

Call ARC_Module60ExecGenere 'Code généré

Call ARC_Module70Exec 'Code générant

Call ARC_Module70ExecGenere 'Code généré

Call ARC_Module80Exec 'Code générant

Call ARC_Module80ExecGenere 'Code généré

Call ARC_Module90Exec 'Code générant

Call ARC_Module90ExecGenere 'Code généré

End Sub

Exemple du code généré

Sub ARC_Module40ExecGenere()

'**

'**

'** REMARQUES: Code généré par ARC_Module40Exec le 04/05/2024 à 15:38

'**

'** DUREE: 3 secondes

'**

MsgBox "Début ARC_Module40ExecGenere", vbInformation, Title:="ARC_Module40ExecGenere"

'**

'**

Call Mc_FE_SupprimerCreer("ARC_R60Data2021", 34)

Call Mc_TS_DL_EcrireDateInfo("ARC_Table01_Parametres", "Mot-Clé", "26_Feuille", "Date de Création")

Call Mc_TS_DL_EcrireProcedureNom("ARC_Table01_Parametres", "Mot-Clé", "26_Feuille", "NomProcédure")

Call Mc_TS_DL_EcrireFeuilleNom("ARC_Table01_Parametres", "Mot-Clé", "26_Feuille", "ARC_R60Data2021")

'**

'**

Call Mc_FE_SupprimerCreer("ARC_R60Data2022", 34)

Call Mc_TS_DL_EcrireDateInfo("ARC_Table01_Parametres", "Mot-Clé", "27_Feuille", "Date de Création")

Call Mc_TS_DL_EcrireProcedureNom("ARC_Table01_Parametres", "Mot-Clé", "27_Feuille", "NomProcédure")

Call Mc_TS_DL_EcrireFeuilleNom("ARC_Table01_Parametres", "Mot-Clé", "27_Feuille", "ARC_R60Data2022")

'**

'**

Call Mc_FE_SupprimerCreer("ARC_R60Data2023", 34)

Call Mc_TS_DL_EcrireDateInfo("ARC_Table01_Parametres", "Mot-Clé", "28_Feuille", "Date de Création")

Call Mc_TS_DL_EcrireProcedureNom("ARC_Table01_Parametres", "Mot-Clé", "28_Feuille", "NomProcédure")

Call Mc_TS_DL_EcrireFeuilleNom("ARC_Table01_Parametres", "Mot-Clé", "28_Feuille", "ARC_R60Data2023")

'**

'**

Call Mc_FE_SupprimerCreer("ARC_R60Data2024", 34)

Call Mc_TS_DL_EcrireDateInfo("ARC_Table01_Parametres", "Mot-Clé", "29_Feuille", "Date de Création")

Call Mc_TS_DL_EcrireProcedureNom("ARC_Table01_Parametres", "Mot-Clé", "29_Feuille", "NomProcédure")

Call Mc_TS_DL_EcrireFeuilleNom("ARC_Table01_Parametres", "Mot-Clé", "29_Feuille", "ARC_R60Data2024")

'**

'**

MsgBox "Fin ARC_Module40ExecGenere", vbInformation, Title:="ARC_Module40ExecGenere"

'**

'**

End Sub

Bonjour,

Si l'une de tes procédures, créé du code ou modifie le code dans le classeur actif, il est normal que Excel se réinitialise. Cela équivaut à un "End"

Pour le vérifier il suffit, dans une appli en cours d'exécution, d'aller à la fin du module et de taper "Sub x" et de valider. Cela créé une nouvelle procédure, le projet est automatiquement réinitialisé (toutes les variables sont vidées).

A voir si c'est ce qui se produit chez toi.

Bonne journée

Bonjour,

pas moyen de faire des procédures plus générales avec passage de paramètre pour changer leur fonctionnement plutôt que de les créer ?
Sinon les créer dans un autre classeur et les appeler avec Application.Run, ça le perturbera sans doute moins.
eric

Merci pour vos réponses, je vais voir comment faire. Bonne journée.

Rechercher des sujets similaires à "bouton appel procedures"