Reset des variables définies en public

Bonjour à tous, je m'adresse à vous pour un problème à priori simple à régler pour qui s'y connaît un peu. (je débute en VBA)

J'ai déclarer environ 500 variables en public dans un module différents de mes programmes pour des raisons de croisement de données bref...
le problème étant que j'aimerai réinitialiser ces variables chaque fois que je lance mon programme principale. C'est à dire que quand je lance mon programme, j'aimerai écrire une commande qui remet à 0 mes variables string ou long (toujours définie en public dans un autre module) et qui vide les listes.

J'espère avoir été assez clair, de plus je ne peux pas vraiment vous montrer de code pour ce problème, j'ai du mal à voir ce que je pourrai vous montrer

Bonjour,

Pour réinitialiser les variables publiques :

Sub reinit_variables()
End
End Sub
message erreur

Re-,

Et?

Ok, tu avais prévenu....

j'ai du mal à voir ce que je pourrai vous montrer

Mais de là à montrer une image...

si je t'ai proposé ce code, pense que je l'ai déjà essayé

si ça ne fonctionne pas chez toi, c'est peut-être parce que je n'y suis pas????

hahah bien vu =)

Sub reinit_variables()
End
End Sub

Sub Importerlafeuille()

reinit_variables
....

carrément maintenant le programme ne s'exécute même plus

le truc c'est que mon programme fait au alentours de 3000 lignes séparer en 9 modules donc compliquer de cibler le problème

Re-,

Il est évident que cette commande doit être réalisée en tout dernier... (End provoque l'arrêt de toute commande, et donc vide les variables)

ou alors, un bouton dédié, qui appelle cette sub, à la demande

Peut-être?

Ce que tu veux dire c'est que en exécutant ton programme juste avant mon "end sub" de mon programme ça va réinitialiser pour la fois d'après en gros ?

ouais mais non,
en gros je te réexplique un peu la situation :
j'ai 8 modules avec dans chaque module un programme. Mon 9eme moducle est consacré à la déclaration des variables en public.

Dans le module 1 j'ai mon programme principale qui va appeler les sous programme des module 2,3,4..8.

J'ai pas bien saisie à quel endroit je doit mettre la commande que tu me propose pour qu'en executant mon programme principale( celui du module 1) j'ai des variables qui ont été reinitialiser par rapport à la fois précédente. =)
J'espère que c'est un peu mieux comme ça

Oui,

Si tu mets juste "End" en toute fin d'une sub, ça réinitialise toutes les variables (inutile d'appeler ma sub, tu rajoutes simplement End avant le End Sub)

Choisis bien la sub...

Sinon, comme proposé, mets un bouton (plus simple, et uniquement quand tu veux...)

je comprends ton idée de bouton, mais je ne suis pas sur que à mon cas, mes variables sont des variables "intermédiares" ( je connais pas le nom officiel) mais en gros elles servent à stocker des valeurs de cellules avant de les réecrire autre part donc vraiment aucun intérêt de ne pas les effacer automatiquement à la fin de chaque exécution.
Et puis surtout ! : grosse flemme de devoir le faire à la main à chaque fois !! =)

j'ai mis le "End" à la fin de la mon programme principal, tout est en ordre !
C'était pourtant si simple.....

Mais merci de ton aide, j'ai bien rigolé =)

Sinon...

A la fin du code "final", tu proposes de réinitialiser, ou pas :

Sub ton_code()
.....
.....
If MsgBox("Etes vous sûr de réinitialiser les variables?", vbYesNo + vbCritical + vbDefaultButton2) = vbYes Then
    reinit_variables
End If
End Sub

Sub reinit_variables()
End
End Sub
Rechercher des sujets similaires à "reset variables definies public"