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

Pourquoi 2 clics ?

6 réponses
Avatar
Guy72
Bonjour,
J'ai un bouton avec le code suivant:
dans "Feuil5"
----------------------------------
Private Sub Règle_Masters_Click()
Explications
End Sub
-----------------------------------
Dans Module "Divers"
---------------------------------------
Sub Explications()
If tst Then
Masters_Règle.Show 0
Else
Unload Masters_Règle
End If
tst = Not tst
End Sub

Est-ce normal que je sois obligé de cliquer 2 fois sur le bouton pour voir
apparaître mon UserForm
"Masters_Règle" ?
--
Cordialement
Guy

6 réponses

Avatar
MichDenis
Ton problème : Absence de déclaration du type de tes variables !

| If tst Then

TST est une variable de type "Boolean" ?

Tu n'as pas déclaré son type dans la procédure locale
est-ce à dire que tu l'as fait au niveau du
Module (Haut du module) ?

Par défaut quand tu déclares une variable comme ceci :
Dim tst As Boolean

Par défaut, la valeur de la variable "TST" = "Faux"
De plus, pour la forme au lieu d'écrire ceci :
If tst Then , je te suggère d'écrire : If tst = True Then
Ceci t'aidera à ta compréhension.

Conséquence : Au premier clic, TST = False
la procédure modifie sa valeur par cette ligne de code
tst = Not tst
Résultat :
TST = Vrai

Au deuxième clic, ton formulaire s'affiche et la valeur
et tst = Not tst
de TST revient à Faux











"Guy72" a écrit dans le message de groupe de discussion :

Bonjour,
J'ai un bouton avec le code suivant:
dans "Feuil5"
----------------------------------
Private Sub Règle_Masters_Click()
Explications
End Sub
-----------------------------------
Dans Module "Divers"
---------------------------------------
Sub Explications()
If tst Then
Masters_Règle.Show 0
Else
Unload Masters_Règle
End If
tst = Not tst
End Sub

Est-ce normal que je sois obligé de cliquer 2 fois sur le bouton pour voir
apparaître mon UserForm
"Masters_Règle" ?
--
Cordialement
Guy
Avatar
Guy72
re bonjour,
J'ai bien :
"Dim tst As Boolean" en haut de mon module.
J'ai mis :
"If tst = True Then".
Mais ça ne change rien, je clic toujours 2 fois.
--
Cordialement
Guy
"MichDenis" a écrit dans le message de news:

Ton problème : Absence de déclaration du type de tes variables !

| If tst Then

TST est une variable de type "Boolean" ?

Tu n'as pas déclaré son type dans la procédure locale
est-ce à dire que tu l'as fait au niveau du
Module (Haut du module) ?

Par défaut quand tu déclares une variable comme ceci :
Dim tst As Boolean

Par défaut, la valeur de la variable "TST" = "Faux"
De plus, pour la forme au lieu d'écrire ceci :
If tst Then , je te suggère d'écrire : If tst = True Then
Ceci t'aidera à ta compréhension.

Conséquence : Au premier clic, TST = False
la procédure modifie sa valeur par cette ligne de code
tst = Not tst
Résultat :
TST = Vrai

Au deuxième clic, ton formulaire s'affiche et la valeur
et tst = Not tst
de TST revient à Faux











"Guy72" a écrit dans le message de groupe de discussion :

Bonjour,
J'ai un bouton avec le code suivant:
dans "Feuil5"
----------------------------------
Private Sub Règle_Masters_Click()
Explications
End Sub
-----------------------------------
Dans Module "Divers"
---------------------------------------
Sub Explications()
If tst Then
Masters_Règle.Show 0
Else
Unload Masters_Règle
End If
tst = Not tst
End Sub

Est-ce normal que je sois obligé de cliquer 2 fois sur le bouton pour voir
apparaître mon UserForm
"Masters_Règle" ?
--
Cordialement
Guy




Avatar
Michel Angelosanto
il faut initialiser tst a true
tst=True

Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8
Avatar
Guy72
Ok encore merci.
--
Cordialement
Guy
"Michel Angelosanto" a écrit dans le message de news:
OGZ$
il faut initialiser tst a true
tst=True

Michel Angelosanto, Bordeaux
Dernières mises à jour du site Voyage au pays Internet
http://angelosa.free.fr/index.php?t=8


Avatar
MichDenis
Tu aurais pu utiliser quelque chose comme ceci :


Sub test()
If UserForm1.Visible = True Then
UserForm1.Hide
Else
UserForm1.Show 0
End If
End Sub
Avatar
Guy72
Bonjour MichDenis
ça me vas, c'est un peu plus court, donc plus simple.
--
Cordialement
Guy
"MichDenis" a écrit dans le message de news:

Tu aurais pu utiliser quelque chose comme ceci :


Sub test()
If UserForm1.Visible = True Then
UserForm1.Hide
Else
UserForm1.Show 0
End If
End Sub