CheckBox à NULL à l'ouverture du UserForm

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MisterT

XLDnaute Occasionnel
Bonjour à chacun,

J'ai un CheckBox dans un UserForm dont la valeur est sauvegardée à la fermeture du USF pour conserver son état à la ré-ouverture du USF.

Alos peu importe l'état du CheckBox à la fermeture du USF, lorsque le USF ouvre, le CheckBox est avec le crochet en gris pâle comme l'état NULL de TripleState, pourtant rien ne commande cet état et dans les propriétés du CheckBox, le TripleState est à FALSE.

Voici le code de sauvegarde de son état puis celui à l'ouverture du USF
Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
SaveSetting "Mes parametres", "CheckBox1", "Valeur CheckBox1", CheckBox1.Value
End Sub
-------------------------

Private Sub UserForm_Initialize()
   CheckBox1.Value = GetSetting("Mes parametres", "CheckBox1", "Valeur CheckBox1")
End Sub

Merci à l'avance à celui qui acceptera de m'aider !

MisterT
 
Re : CheckBox à NULL à l'ouverture du UserForm

Bonsoir,

Essaie:
Code:
Private Sub UserForm_Initialize()
   CheckBox1.Value = cbool(GetSetting("Mes parametres", "CheckBox1", "Valeur CheckBox1"))
End Sub
Sinon va voir dans la base de registre comment est conservée la valeur (sûrement -1 ou 0)

A+
 
Re : CheckBox à NULL à l'ouverture du UserForm

Bonjour Hasco,

Merci beaucoup, ça fonctionne pour récupérer l'état du CheckBox à la ré-ouverture du USF.

Mais, curieusement, lorsque je clique sur le CheckBox fois après fois, il passe par les 3 états; FALSE, NULL, TRUE dans l'ordre.

Comment faire pour aller voir la base des registres ? Désolé pour mes méconaissances de débutant.
------------------
Le code que tu as fourni pour la sauvegarde peut-il être utilisé tel quel aussi pour les sauvegardes des valeurs de ComboBox/ListBox car parfois la sélection du ListBox n'apparaît pas en surbrillance à l'ouverture du USF ?
-----------------

Merci encore et A+
MisterT
 
Re : CheckBox à NULL à l'ouverture du UserForm

Bonsoir Mistert, Hasco, Lii,

"Comment faire pour aller voir la base des registres ?"

Comme Lii, si tu ne connais pas, pas touche.

Je m'y connais quelques peu, et sur des sujets précis, mais pourtant j'évite, trop risqué.....

Bonne soirée.

Jean-Pierre
 
Re : CheckBox à NULL à l'ouverture du UserForm

Re,

tu peux sauvegarder l'état dans une cellule (cachée) sans courir le moindre risque :
Code:
Private Sub UserForm_Initialize()
   CheckBox1 = [A2009]
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  [A2009] = CheckBox1
End Sub
 
Re : CheckBox à NULL à l'ouverture du UserForm

Bonsoir tous,

Pour répondre à ton post #3: 🙂)avec retard🙂)

De plussoie fortment à ce que t'a dit Jean-Pierre. Et trouve la solution de Lii idéale.
De plus SaveSetting et GetSetting chargent la base de registre pour pas grand chose. D'autant plus que si tu supprime ton fichier les données seront conservées.

Et pour ton problème de TripleState tu peux le forcer à l'initialisation du userForm CheckBox1.TripleState =False

A+
 
Re : CheckBox à NULL à l'ouverture du UserForm

Merci beaucoup Hasco, Lii et Jean-Pierre pour les bons conseils et suggestions !

Pour le CheckBox1.TripleState =False à l'initialisation du userForm, c'est excellent et aussi pour la sauvegarde dans une cellule.

Pour la sauvegarde dans une cellule, cela veut-il dire que je pourrais le faire aussi pour les valeurs des ComboBox/ListBox/TextBox pour remplacer ce qui suit et est-ce que ça fonctionnera aussi avec les valeurs numériques avec décimale ou s'il doit y avoir une instruction particulière?;

CROSSmarkComboBox3.Value = GetSetting("Mes parametres", "CROSSmarkComboBox3", "Valeur CROSSmarkComboBox3")
CROSSmodelListBox3.Value = GetSetting("Mes parametres", "CROSSmodelListBox3", "Valeur CROSSmodelListBox3")
TextBox1.Value = GetSetting("Mes parametres", "TextBox1", "Valeur TextBox1")
TextBox2.Value = GetSetting("Mes parametres", "TextBox2", "Valeur TextBox2")
TextBox3.Value = GetSetting("Mes parametres", "TextBox3", "Valeur TextBox3")
TextBox4.Value = GetSetting("Mes parametres", "TextBox4", "Valeur TextBox4")

Merci à chacun, c'est très apprécié !!!
MisterT
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour