Recouvrement de valeurs entre deux sessions [Résolu]

Signaler
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour,
J'ai créer un jeu de blackjack à partir d'un formulaire. Lorsque j'ouvre le formulaire j'ai une textbox qui m'indique le nombre de crédit que je dispose que j'ai indiqué dans

Sub Bouton3_Clic()
Dim balance As Integer
balance = 500
UserForm1.TextBox2.Value = balance
UserForm1.Show
End Sub

Après chaque partie le nombre de crédit varie en fonction du résultat. Cependant, je suis confronté à un problème. En effet, à la fin de ma première partie la valeur de ma textbox repasse à zéro alors qu'elle devrait être soit à 490 ou 510.
Mais après cela fonctionne bien, en effet ma textbox prend soit la valeur -10 ou 10 après la fin de la deuxième partie. Il s'agit d'un problème de recouvrement de valeurs entre deux sessions. Je ne sais pas comment faire pour que le formulaire retienne ma première valeur 500.

5 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Bonjour,
Il te faut enregistrer en dur les valeurs à conserver entre deux sessions.
Tu peux par exemple (et entre autres) les enregistrer dans un fichier texte (ouvert en écriture), puis les y lire et les recharger lors de l'ouverture d'une nouvelle session.
Il te faut pour cela apprendre (ton aide VB6) à utiliser l'instruction Open (for input pour lire, for output pour écrire dans un fichier texte .txt). Les rubriques concernées de ton aide VB6 sont à ce sujet claires et accompagnées d'exemples simples.
L'utilisation du moteur de recherche de ce forum te conduira par ailleurs à une véritable "foultitude" de discussions et codes sur ce thème récurrent.
Reviens après ces lectures (avec ton code d'essai) si encore en difficulté.
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014

Mais pourquoi je devrais enregistrer la première valeur alors qu'à la 2 ème partie le formulaire se souvient de la valeur précédente. J'ai l'impression qu'il y a un moyen plus simple?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Je ne te comprends plus !
C'est entre sessions ou entre étapes d'une même session de ton appli ? Ce n'est pas du tout la même chose !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Tu changes de session en fermant puis en ouvrant une appli.
Tu ne changes pas de session, mais simplement d'étape, en laissant ton appli ouverte
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014

entre étape d'une même session. Je ne ferme à aucun moment mon fichier excel, ni mon formulaire. Je joue juste une nouvelle partie.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Ben ...
Il te suffit alors de déclarer en public, dans un module .bas, la variable qui doit garder cette valeur (et/ou ses variations) !
Elle gardera toujours alors la dernière variation de valeur.
Et à chaque "nouvelle partie" tu en réinitialise la valeur comme tu l'entends !
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Il serait par ailleurs assez temps que tu commences à découviri d'autres "petites" choses :
- tant qu'un userform n'est pas déchargé (par Unload), les contrôles et variables qui lui sont attachés ne perdent ni leurs propriétés, ni leurs valeurs.
- il n'est pas nécessaire de décharger un userform, si on veut le garder (ainsi que ses composants) "vivant. La méthode Hide ne décharge pas un userform.
- l'instruction Unload, par contre, fait perdre ces mêmes valeurs et propriétés
- l'évènement Initialize ne se déclenche pas à nouveau par un Show après un Hide. Il se déclenche par contre après un déchargement (Unload)
Cela ne t'ouvre pas de "perspectives" ??? Non ???
Tu n'es là que face à une gestion réfléchie de tout cela ! Et riern d'autre que cela !