Excel VBA Initialisation

cs_Alien Messages postés 70 Date d'inscription mardi 4 juin 2002 Statut Membre Dernière intervention 23 mars 2024 - Modifié le 24 mars 2024 à 09:32
Alizee79 Messages postés 1 Date d'inscription lundi 4 mars 2024 Statut Membre Dernière intervention 4 avril 2024 - 4 avril 2024 à 08:47

Bonjour,

A l'ouverture de mon classeur, je lance une Sub qui me permet d'initialiser toutes mes variables! 

Malheureusement si une personne click sur "Stop" dans le mode développeur, toutes mes variables sont réinitialiser à vide.

J'aimerais savoir si on peut détecter le click Stop pour relancer ma Sub d'initialisation de mes variables.


Ce que je fais est trop lourds ! 
j'ai créer une variable Public VbaPlay As Boolean que je met a True quand je lance ma Sub Init() 

qui ressemble a ceci 

Sub Init()
On Error Resume Next

If Not VbaPlay Then
......
VbaPlay=true
end if
end sub



 a chaque Sub de mon programme je lance call Init()

ca fonctionne mais c'est vraiment lourd


2 réponses

dysorthographie Messages postés 92 Date d'inscription jeudi 27 janvier 2022 Statut Membre Dernière intervention 3 avril 2024 5
Modifié le 29 mars 2024 à 09:43

Bonjour,

Tu as tellement de variables à initialiser que tu préfères le faire qu'une seule fois à l'ouverture de ton classeur.

Personnellement je bani cette façon de voir le choses.

Je préfère décaler mes variables dans la macro principale et le cas échéant fournir aux méthodes sous-jacente c'est variables en paramètre.

Au pire tu utilises un sub inite que tu exécute avant chaque lancement des macros qui les utilises !

Il y a plein de raisons qui peuvent stopper les macros et rendre tes déclarations inopérante.

0
Alizee79 Messages postés 1 Date d'inscription lundi 4 mars 2024 Statut Membre Dernière intervention 4 avril 2024
4 avril 2024 à 08:47

Salut,

Pour ton souci de variables qui se réinitialisent, t'as pensé à utiliser Workbook_Open dans ThisWorkbook pour relancer ta Sub automatiquement à chaque ouverture du classeur ? Ça pourrait être une solution simple.

Et si tu veux vraiment détecter le clic sur "Stop", c'est un peu plus compliqué parce que VBA n'a pas de gestionnaire d'événements pour ça. Mais franchement, relancer ta Sub avec Workbook_Open devrait suffire.

Tiens bon, et bon code !

0
Rejoignez-nous