Recouvrement de valeurs entre deux sessions [Résolu]

Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014
- - Dernière réponse : ucfoutu
Messages postés
18039
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.
Afficher la suite 

5 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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é.
Commenter la réponse de ucfoutu
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014
0
Merci
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?
Commenter la réponse de Eliot7500
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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 !
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214 -
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
Eliot7500
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.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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 !
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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 !
Commenter la réponse de ucfoutu