Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Besoin d'aide sur code ou procédure

4 réponses
Avatar
Fredo(67)
Bonjour,

je fait des essais avec les Userform
j'ai tap=E9 ce code
Mon userform comporte 2 ckeckbox
En G1 et G2 j'ai respectivement des valeurs (X ou vide - Vrai ou faux)

***
Private Sub UserForm_Initialize()
If Sheets("feuil1").Range("g1").Value =3D "x" Then CheckBox1.Value =3D True=
Else CheckBox1.Value =3D False
CheckBox2.Value =3D Range("g2").Value
End Sub
***

Mon soucis est le suivant :
Je lance l'userform une premi=E8re fois, il prend bien compte des valeurs d=
e G1 et G2 pour cocher/d=E9cocher les Checkbox

Je modifie les valeurs de G1 et G2, je relance la deuxi=E8me fois mon userf=
orm,
il ne change rien.
Il faut que je
- Modifie les valeurs de G1 et G2
- clique sur arr=EAter la macro dans VBA
- relance l'userform=20

pour qu'il prenne en compte les nouvelles valeurs...

Est-ce normal ?

4 réponses

Avatar
MichD
Bonjour,


Cet événement du formulaire : Private Sub UserForm_Initialize() s'exécute seulement
lorsque
le formulaire se charge.

Si tu masques le formulaire avec l'aide de la commande "Userform1.Hide", et que tu
l'affiches
à nouveau à l'aide de la commande "Userform1.Show", l'événement UserForm_Initialize() ne
s'exécute pas et ne peut pas prendre en considération la modification des valeurs de la
feuille.



MichD
---------------------------------------------------------------
Avatar
Fredo(67)
Merci MichD
Bien c'est bien ce que je pensait

Comment pourrais-je faire pour qu'à chaque affichage, on force excel à prendre en considération les valeurs des cellules considérées ?

y'a t'il un bout de code ?

Merci



Le jeudi 9 août 2012 16:22:22 UTC+2, Fredo(67) a écrit :
Bonjour,



je fait des essais avec les Userform

j'ai tapé ce code

Mon userform comporte 2 ckeckbox

En G1 et G2 j'ai respectivement des valeurs (X ou vide - Vrai ou faux)



***

Private Sub UserForm_Initialize()

If Sheets("feuil1").Range("g1").Value = "x" Then CheckBox1.Value = Tr ue Else CheckBox1.Value = False

CheckBox2.Value = Range("g2").Value

End Sub

***



Mon soucis est le suivant :

Je lance l'userform une première fois, il prend bien compte des valeurs de G1 et G2 pour cocher/décocher les Checkbox



Je modifie les valeurs de G1 et G2, je relance la deuxième fois mon use rform,

il ne change rien.

Il faut que je

- Modifie les valeurs de G1 et G2

- clique sur arrêter la macro dans VBA

- relance l'userform



pour qu'il prenne en compte les nouvelles valeurs...



Est-ce normal ?
Avatar
MichD
Essaie comme ceci :

Tout le code dans le formulaire...

'--------------------------
Private Sub UserForm_Activate()
MiseAjourCheckBox
End Sub
'--------------------------
Private Sub UserForm_Initialize()
MiseAjourCheckBox
End Sub
'--------------------------
Sub MiseAjourCheckBox()
If Sheets("feuil1").Range("g1").Value = "x" Then
CheckBox1.Value = True
Else
CheckBox1.Value = False
End If
CheckBox2.Value = Range("g2").Value

End Sub
'--------------------------



MichD
---------------------------------------------------------------
"Fredo(67)" a écrit dans le message de groupe de discussion :


Merci MichD
Bien c'est bien ce que je pensait

Comment pourrais-je faire pour qu'à chaque affichage, on force excel à prendre en
considération les valeurs des cellules considérées ?

y'a t'il un bout de code ?

Merci



Le jeudi 9 août 2012 16:22:22 UTC+2, Fredo(67) a écrit :
Bonjour,



je fait des essais avec les Userform

j'ai tapé ce code

Mon userform comporte 2 ckeckbox

En G1 et G2 j'ai respectivement des valeurs (X ou vide - Vrai ou faux)



***

Private Sub UserForm_Initialize()

If Sheets("feuil1").Range("g1").Value = "x" Then CheckBox1.Value = True Else
CheckBox1.Value = False

CheckBox2.Value = Range("g2").Value

End Sub

***



Mon soucis est le suivant :

Je lance l'userform une première fois, il prend bien compte des valeurs de G1 et G2 pour
cocher/décocher les Checkbox



Je modifie les valeurs de G1 et G2, je relance la deuxième fois mon userform,

il ne change rien.

Il faut que je

- Modifie les valeurs de G1 et G2

- clique sur arrêter la macro dans VBA

- relance l'userform



pour qu'il prenne en compte les nouvelles valeurs...



Est-ce normal ?
Avatar
Fredo(67)
Merci ça marche
non seulement dans la feuille de test que j'avais créé mais surtout dan s ma procédure de base...

Encore un grand merci

Le jeudi 9 août 2012 16:22:22 UTC+2, Fredo(67) a écrit :
Bonjour,



je fait des essais avec les Userform

j'ai tapé ce code

Mon userform comporte 2 ckeckbox

En G1 et G2 j'ai respectivement des valeurs (X ou vide - Vrai ou faux)



***

Private Sub UserForm_Initialize()

If Sheets("feuil1").Range("g1").Value = "x" Then CheckBox1.Value = Tr ue Else CheckBox1.Value = False

CheckBox2.Value = Range("g2").Value

End Sub

***



Mon soucis est le suivant :

Je lance l'userform une première fois, il prend bien compte des valeurs de G1 et G2 pour cocher/décocher les Checkbox



Je modifie les valeurs de G1 et G2, je relance la deuxième fois mon use rform,

il ne change rien.

Il faut que je

- Modifie les valeurs de G1 et G2

- clique sur arrêter la macro dans VBA

- relance l'userform



pour qu'il prenne en compte les nouvelles valeurs...



Est-ce normal ?