Mémoriser l'état d'une Checkbox sous VBA

Signaler
Messages postés
2
Date d'inscription
jeudi 12 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007
-
Messages postés
39
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
17 octobre 2008
-
Bonjour,

Je souhaiterais savoir comment dois je procéder pour mémoriser l'état d'une checkbox sous VBA. Lorsque je lance une UserForm contenant divers Checkbox, comment peut-elle afficher l'état des checkbox définie par une validation antérieure ??

Merci de votre réponse. J'ai tenté de copier l'état de mes checkbos dans un fichier texte et de lire ce fichier à chaque lancement de ma macro mais cela ne fonctionne pas (ou alors le code que j'ai utilisé pour faire cela est faux).

Romain Badens

7 réponses

Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
"J'ai tenté de copier l'état de mes checkbos dans un fichier texte et de lire ce fichier à chaque lancement de ma macro mais cela ne fonctionne pas (ou alors le code que j'ai utilisé pour faire cela est faux)."


En effet, comme tu le dis toi-même !

Mais comme nous ne voyons pas ce code, ma foi, nous ne faisons que deviner qu'il a besoin d'être corrigé !!!
Montre-nous donc ce code (celui de l'écriture dans ton fichier texte et celui de la lecture dans ce même fichier)...
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Salut,
Juste une question quel est le rapport avec:
[infomsg.aspx Thèmes] / [infomsgf_CODES-SOURCES_43.aspx CodeS-SourceS] / [infomsgt_PROPOS-SITES-CODES-SOURCES_769.aspx A propos des sites CodeS-SourceS] / [infomsgt_DEMANDE-NOUVEAU-THEME-DISCUSSION_772.aspx Demande d'un nouveau thème de discussion ?] /
BREF.... Si un admin passe par là... (ah les pauvres en ce moment ils ont vraiment du taf avec tout ces gens qui postent VRAIMENT ou bon leur semble...)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
2
Date d'inscription
jeudi 12 avril 2007
Statut
Membre
Dernière intervention
12 avril 2007

C'est un peu fastidieux mais soyez indulgent je débute tout juste dans VBA !!

 Code d'écriture dans fichier texte :

Sub ecriture()

Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")

Set ValueCheckbox = FSO.CreateTextFile("C:\ValueCheckbox.txt", True, True)
If Req1.CheckBox1 True Then b2 0 And ValueCheckbox.WriteLine("Req1.CheckBox1=True")        If Req1.CheckBox1 False Then b2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox1=False")        If Req1.CheckBox2 True Then c2 0 And ValueCheckbox.WriteLine("Req1.CheckBox2=True")        If Req1.CheckBox2 False Then c2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox2=False")        If Req1.CheckBox3 True Then d2 0 And ValueCheckbox.WriteLine("Req1.CheckBox3=True")        If Req1.CheckBox3 False Then d2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox3=False")        If Req1.CheckBox4 True Then e2 0 And ValueCheckbox.WriteLine("Req1.CheckBox4=True")        If Req1.CheckBox4 False Then e2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox4=False")        If Req1.CheckBox5 True Then f2 0 And ValueCheckbox.WriteLine("Req1.CheckBox5=True")        If Req1.CheckBox5 False Then f2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox5=False")        If Req1.CheckBox6 True Then g2 0 And ValueCheckbox.WriteLine("Req1.CheckBox6=True")        If Req1.CheckBox6 False Then g2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox6=False")        If Req1.CheckBox7 True Then h2 0 And ValueCheckbox.WriteLine("Req1.CheckBox7=True")        If Req1.CheckBox7 False Then h2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox7=False")        If Req1.CheckBox8 True Then i2 0 And ValueCheckbox.WriteLine

("Req1.CheckBox8=True")        If Req1.CheckBox8 False Then i2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox8=False")        If Req1.CheckBox9 True Then j2 0 And ValueCheckbox.WriteLine("Req1.CheckBox9=True")        If Req1.CheckBox9 False Then j2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox9=False")        If Req1.CheckBox10 True Then k2 0 And ValueCheckbox.WriteLine("Req1.CheckBox10=True")        If Req1.CheckBox10 False Then k2 -10 And ValueCheckbox.WriteLine("Req1.CheckBox10=False")

End Sub

Code de lecture :

Sub Lecture ()

Dim FSO

Dim test As String

Set FSO = CreateObject("Scripting.FileSystemObject")

Set file = FSO.OpenTextFile("C:\ValueCheckbox.txt", 1)

test = file.readall

End Sub

Romain Badens
Messages postés
1642
Date d'inscription
samedi 6 novembre 2004
Statut
Modérateur
Dernière intervention
28 avril 2011
2
Question redirigé vers "Visual Basic 6 / Langages dérivés / VBA"... !

<hr width="100%" size="2" />Nurgle (Antoine) - MSP
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Oui !


Et sous VBA, il a à sa disposition les variables document (voir dans l'aide en ligne ce qu'est une variable document) qui lui permettent de se dispenser d'un tremplin fichier texte ....
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Es-tu sous Excel ou Word ou Access ou PowerPoint ou Outlook ?
"VBA" ne veut rien dire quoique c'est mieux que "VB" dans le cas d'application Office. On discerne déjà un peu mieux.

Si tu es sous Word, il y a les variables Document comme le spécifie JMF (mais je ne connais pas...)
Si tu es sous Excel, il y a possibilité d'utiliser une feuille, même cachée.
Si tu es sous Access, tu pourrais avoir une table à cet effet.
Si tu es ailleurs, tu n'es pas ici...

MPi
Messages postés
39
Date d'inscription
mardi 9 octobre 2007
Statut
Membre
Dernière intervention
17 octobre 2008

j'ai le m pb donc je me permet de relancer cette discution inachevé je par d'excel pour ouvrir word vérifié qu'un check box est coché lancé une macro dans excel et fermé le doc word
pour le moment le code ressemble a :

Private Sub CommandButton1_Click()
'Lorsqu'il y a un espace dans le nom du repertoire: ajout de " "
MyAppID = Shell("Winword.EXE ""C:\Documents and Settings\xx\Bureau\test.doc""", 1)

    With Selection
    If Req1.CheckBox1 = True Then
    MsgBox "ok"
    End If
    End With
End Sub