Unload me et variables globales
Hello,
A nouveau un problème sur une routine qui fonctionnait auparavant, mais plus maintenant. Dans mon formulaire, j'enregistre des variables globales afin de garder en mémoire certaines informations. Lorsque je relance le formulaire, je veux pouvoir récupérer ces informations afin de renseigner certains champs.
Donc, au moment où je valide mon formulaire, j'enregistre dans 4 variables déclarées en globales certains champs. Puis je fais Unload formulaire
Du coup, lorsque je réouvre ce dernier, les variables sont remises à zéro. Comment faire?
J'avais pensé enregistré les infos non pas dans des variables mais dans des labels invisibles et réaffectés les captions de ces labels dans mes champs, mais ça me paraît un peu "bricolage"... Merci pour votre aide!
Variables globales, publiques, etc.
Salut, j''ai feinté comme un brigand en récupérant les infos que je voulais conserver à la fermeture de mon formulaire dans des cellules de mon fichier Excel, puis que je récupère lorsque je le réouvre... mais c'est de la bidouille, et j'aimerais faire autrement : à savoir utiliser des variables qui "durent" c'est-à-dire qui conservent leurs informations à la fermeture du formulaire où elles sont créées (à la sortie d'un "Unload formulaire").
Donc, pour vous répondre, dans mon formulaire, j'ai un bouton "valider" qui me permet de récupérer les infos de certaines Textbox, et que j'enregistre dans des variables.
Le bouton appelle donc :
- une sub "enregistrement" d'un autre module (qui enregistre certaines données que je souhaite conserver)
- puis fait un "Unload Me"
Tout en haut de mon module dans lequel se trouve la sub "enregistrement", j'ai déclaré en Global plusieurs variables (date1 as string, refcourrier1 as string, etc.)
Puis j'ai une sub "enregistrement" dans laquelle j'affecte à mes variables globales certains champs de mon formulaire.
Par exemple:
date1 = .textdate1.value
refcourrier1 = .textRefcourrier1.value
Jusqu'ici, ça fonctionne. Normal, c'est juste avant le "Unload Me".
Quand je relance mon formulaire, j'ai un autre bouton "Récupérer dernières infos" qui appelle un autre module dans lequel se trouve la sub "récupération".
Dans cette sub, je réaffecte (opération inverse) les valeurs contenues dans mes variables aux champs de mon formulaire:
.textdate1.value = date1
.textRefcourrier1.value = refcourrier1
Sauf qu'à ce stade, mes variables date1 et refcourrier1 sont vides.
Je suppose donc m'être trompé dans la déclaration de mes variables. J'ai un peu cherché, et n'ai finalement pas bien compris la différence entre les variables Global et Public. j'ai testé les 2, aucun ne fonctionne.
J'en profite enfin pour demander s'il y a une astuce concernant les formats "date". j'ai récupéré la super procédure de masque de saisie d'un format date (merci Patricktoulon!!) sauf que lorsque je remplis une cellule avec mon champs date1, il m'inverse les mois et les jours. J'ai lu qu'entre Excel et VBA la déclaration était inversée. j'ai donc rajouté CDate... sauf que si mon premier champs est 25/02/2002, dans Excel pas de souci, mais si mon deuxième champs est 04/02/2002, alors il m'inverse celui-là...
merci pour toute l'aide et les explications que vous voudrez bien me donner!!