Auteur de questions
Reset des variables après l'utilisation de la méthode InsertLines insérant des lignes de code dans un module VBA

Question
-
Bonjour,
Version Access 2021.
Lors de l'insertion de ligne de code à l'aide de la méthode <InsertLines> dans un module VBA, j'ai remarqué que toutes les variables du programme étaient resetées après sont exécution. Quand la ligne de code utilisant la méthode <InsertLines> est mise en commentaire, le problème ne se pose pas.
Voici illustré le résultat d'un petit programme de test.
Voici le code du teste dans le formulaire.
Option Compare Database Option Explicit Dim MyVariableForm As String 'Ajouter la référence <Microsoft Visual Basic for Applications Extensibility 5.3> Private Sub cmdCode_Click() Dim codeModuleProject As VBIDE.CodeModule Dim positionLine As Long, idNameprocedure As Long Dim codeVBA As String Set codeModuleProject = VBE.VBProjects(1).VBComponents("AddCode").CodeModule 'Se positionne sur une nouvelle ligne en dessous du module positionLine = codeModuleProject.CountOfLines + 1 'Crée le début de la procédure idNameprocedure = Timer * 100 codeVBA = vbCrLf & "Public sub Essai" & idNameprocedure & "()" 'Ajoute la fin de la procédure codeVBA = codeVBA & vbCrLf & vbCrLf & "End Sub" 'Ajoute le code et le visualise codeModuleProject.InsertLines positionLine, codeVBA VBE.VBProjects(1).VBComponents(codeModuleProject.Name).Activate VBE.ActiveCodePane.SetSelection positionLine + 1, 1, positionLine + 1, 1 VBE.ActiveCodePane.Show End Sub Private Sub cmdInitVariable_Click() 'Initialise les variables publics et du formulaire MyVarPublic1 = 100 MyVarPublic2 = True MyVariableForm = "Form variable" Me.txtVariable1 = MyVarPublic1 Me.txtVariable2 = MyVarPublic2 Me.txtVariable3 = MyVariableForm End Sub Private Sub cmdRead_Click() 'Affiche les valeurs des variables publics et du formulaire Me.txtVariable1 = MyVarPublic1 Me.txtVariable2 = MyVarPublic2 Me.txtVariable3 = MyVariableForm End Sub
Voici les variables publics dans le module Paramètres.
Voici le code créé dans le module AddCode par la méthode InsertLines.
Y-a-t-il une solution à ce problème?
- Modifié Jacky Perpète mercredi 22 février 2023 08:21
Toutes les réponses
-
-
Bonsoir Jacky,
Vous pouvez essayer d'ajouter le code dynamiquement à l'aide de OnAction comme expliqué dans le lien suivant:
A bientôt
Alexis
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni « tel quel » et il n'implique aucune responsabilité de la part de Microsoft. S'il vous plaît n'oubliez pas de « Marquer comme réponse » les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile l’accès aux solutions.
-
Merci pour votre suggestion.
Si j'ai bien compris, Onaction est associé à la création d'un bouton dans Excel.
je ne trouve pas cela dans Access.
De plus, la sous-routine que je dois créer dans mon module ne sera pas associée à un controle de formulaire.