Pourquoi 2 clics ?

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
MichDenis
Le #18955141
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"
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
Guy72
Le #18955851
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"
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"
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




Michel Angelosanto
Le #18956121
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
Guy72
Le #18956831
Ok encore merci.
--
Cordialement
Guy
"Michel Angelosanto" 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


MichDenis
Le #18957101
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
Guy72
Le #18959901
Bonjour MichDenis
ça me vas, c'est un peu plus court, donc plus simple.
--
Cordialement
Guy
"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








Publicité
Poster une réponse
Anonyme