Recouvrement de valeurs entre deux sessions

Résolu
Eliot7500 Messages postés 18 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014 - 30 déc. 2013 à 19:28
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 30 déc. 2013 à 22:35
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

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
30 déc. 2013 à 19:35
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é.
0
Eliot7500 Messages postés 18 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014
30 déc. 2013 à 19:42
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?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
30 déc. 2013 à 19:45
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 !
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
30 déc. 2013 à 19:48
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
0
Eliot7500 Messages postés 18 Date d'inscription dimanche 22 décembre 2013 Statut Membre Dernière intervention 4 janvier 2014
30 déc. 2013 à 20:09
entre étape d'une même session. Je ne ferme à aucun moment mon fichier excel, ni mon formulaire. Je joue juste une nouvelle partie.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
30 déc. 2013 à 20:57
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 212
30 déc. 2013 à 22:35
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 !
0
Rejoignez-nous