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

TextBox double click suivant condition

5 réponses
Avatar
Ouille
Salut a toute et tous,

J'utilisait ce code, pour appeler le calendrier :

Private Sub txtDateAgrement_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Calendar1.Visible = True
End Sub

Mais comme je ne voudrai pas que cet évenement se fasse a chaque double
click sur ce controle, j'aimerai qu'il soit valide que quand, le bouton
modifier a été appuyé, voici le code de celui-ci :

Private Sub ModifierNourisse_Click()

Dim reponseModifier, Ctrl
reponseModifier = MsgBox("Voulez-vous modifier toutes les données ?", _
vbYesNo + vbQuestion, "VALIDATION")
If reponseModifier = vbYes Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Value = ""
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Locked = False
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.BackColor = &HC0C0FF
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.ControlTipText = _
"Saisissez ici vos données."
Next Ctrl
Else
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.BackColor =
&HC0C0FF
If TypeOf Ctrl Is MSForms.TextBox Then Ctrl.Locked =
False
If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.ControlTipText = _
"Saisissez ici vos données."
Next
End If
ValiderNourrice.Visible = True
ModifierNourisse.Visible = False
cbxTitre.Visible = True
Label9.Visible = True
txtNom.Visible = False
Label1.Visible = False
cbxTitre.BackColor = &HC0C0FF
cbxTitre.SetFocus
End Sub

Je vous remercie par avance, Ouille

5 réponses

Avatar
J-Dan
bonjour Ouille,

ta reponse est dans la question , si tu veux faire
apparaitre ton Calendar apres acceptation (vbyes) du
message "Validation" :

If reponseModifier = vbYes Then
For Each Ctrl ....
next ....
Calendar1.Visible = True

Else
For Each Ctrl ....
next ....
End If

tu peux aussi alleger un peu ton code :

If reponseModifier = vbYes Then

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.Value = ""
.Locked = False
.BackColor = &HC0C0FF
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
Calendar1.Visible = True

Else

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.BackColor = 12632319
.Locked = False
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
End If

Est-ce que cela te va ?

-----Message d'origine-----
Salut a toute et tous,

J'utilisait ce code, pour appeler le calendrier :

Private Sub txtDateAgrement_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)

Calendar1.Visible = True
End Sub

Mais comme je ne voudrai pas que cet évenement se fasse
a chaque double

click sur ce controle, j'aimerai qu'il soit valide que
quand, le bouton

modifier a été appuyé, voici le code de celui-ci :

Private Sub ModifierNourisse_Click()

Dim reponseModifier, Ctrl
reponseModifier = MsgBox("Voulez-vous modifier toutes
les données ?", _

vbYesNo + vbQuestion, "VALIDATION")
If reponseModifier = vbYes Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Value = ""

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Locked = False

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.BackColor = &HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.ControlTipText = _

"Saisissez ici vos données."
Next Ctrl
Else
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.BackColor =

&HC0C0FF
If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.Locked =

False
If TypeOf Ctrl Is MSForms.TextBox
Then

Ctrl.ControlTipText = _
"Saisissez ici vos données."
Next
End If
ValiderNourrice.Visible = True
ModifierNourisse.Visible = False
cbxTitre.Visible = True
Label9.Visible = True
txtNom.Visible = False
Label1.Visible = False
cbxTitre.BackColor = &HC0C0FF
cbxTitre.SetFocus
End Sub

Je vous remercie par avance, Ouille


.



Avatar
ouille
J-Dan, le forum

J-Dan, merci pour ta réponse et pour l'llègement du code, c'est souvent que je ne le fais pas, et c'est vrai ue c'est pratique.

Pour le reste j'ai du mal m'exprimer, jusqu'a présent je faisait un double click pour modifier la date du controle, mais je n'avait pas de boiton "Modifier", maintenant j'ai un bouton qui me sert a modifier les données, avec la demande si je veux tout modifier ou non, mais je voudrais que la fonction du double click ne se face que si j'appui sur ce bouton et pas comme maintenat que cela le fait dés l'ouverture de l'UserForm, j'espère avoir été plus explicite.

Merci, encore Ouille


bonjour Ouille,

ta reponse est dans la question , si tu veux faire
apparaitre ton Calendar apres acceptation (vbyes) du
message "Validation" :

If reponseModifier = vbYes Then
For Each Ctrl ....
next ....
Calendar1.Visible = True

Else
For Each Ctrl ....
next ....
End If

tu peux aussi alleger un peu ton code :

If reponseModifier = vbYes Then

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.Value = ""
.Locked = False
.BackColor = &HC0C0FF
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
Calendar1.Visible = True

Else

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.BackColor = 12632319
.Locked = False
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
End If

Est-ce que cela te va ?

-----Message d'origine-----
Salut a toute et tous,

J'utilisait ce code, pour appeler le calendrier :

Private Sub txtDateAgrement_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)

Calendar1.Visible = True
End Sub

Mais comme je ne voudrai pas que cet évenement se fasse
a chaque double

click sur ce controle, j'aimerai qu'il soit valide que
quand, le bouton

modifier a été appuyé, voici le code de celui-ci :

Private Sub ModifierNourisse_Click()

Dim reponseModifier, Ctrl
reponseModifier = MsgBox("Voulez-vous modifier toutes
les données ?", _

vbYesNo + vbQuestion, "VALIDATION")
If reponseModifier = vbYes Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Value = ""

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Locked = False

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.BackColor = &HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.ControlTipText = _

"Saisissez ici vos données."
Next Ctrl
Else
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.BackColor > >&HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.Locked > >False

If TypeOf Ctrl Is MSForms.TextBox
Then

Ctrl.ControlTipText = _
"Saisissez ici vos données."
Next
End If
ValiderNourrice.Visible = True
ModifierNourisse.Visible = False
cbxTitre.Visible = True
Label9.Visible = True
txtNom.Visible = False
Label1.Visible = False
cbxTitre.BackColor = &HC0C0FF
cbxTitre.SetFocus
End Sub

Je vous remercie par avance, Ouille


.






Avatar
?ve
Salut,
Si tu veux que la valeur de la variable dure toute la session (aussi
longtemps qu'Excel est ouvert), déclare la publique dans un module standard
:

'variable qui garde sa valeur
'aussi longtemps que la Form est chargée
Dim Modif As Boolean

Private Sub ModifierNourisse_Click()
Modif = True
'ici ton code...
'bla bla bla....
End Sub

Private Sub txtDateAgrement_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If Modif = True Then
Calendar1.Visible = True
'remise à false de la variable
Modif = False
End If
End Sub

Hervé.

"ouille" a écrit dans le message de news:

J-Dan, le forum

J-Dan, merci pour ta réponse et pour l'llègement du code, c'est souvent
que je ne le fais pas, et c'est vrai ue c'est pratique.


Pour le reste j'ai du mal m'exprimer, jusqu'a présent je faisait un double
click pour modifier la date du controle, mais je n'avait pas de boiton

"Modifier", maintenant j'ai un bouton qui me sert a modifier les données,
avec la demande si je veux tout modifier ou non, mais je voudrais que la
fonction du double click ne se face que si j'appui sur ce bouton et pas
comme maintenat que cela le fait dés l'ouverture de l'UserForm, j'espère
avoir été plus explicite.

Merci, encore Ouille


bonjour Ouille,

ta reponse est dans la question , si tu veux faire
apparaitre ton Calendar apres acceptation (vbyes) du
message "Validation" :

If reponseModifier = vbYes Then
For Each Ctrl ....
next ....
Calendar1.Visible = True

Else
For Each Ctrl ....
next ....
End If

tu peux aussi alleger un peu ton code :

If reponseModifier = vbYes Then

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.Value = ""
.Locked = False
.BackColor = &HC0C0FF
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
Calendar1.Visible = True

Else

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.BackColor = 12632319
.Locked = False
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
End If

Est-ce que cela te va ?

-----Message d'origine-----
Salut a toute et tous,

J'utilisait ce code, pour appeler le calendrier :

Private Sub txtDateAgrement_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)

Calendar1.Visible = True
End Sub

Mais comme je ne voudrai pas que cet évenement se fasse
a chaque double

click sur ce controle, j'aimerai qu'il soit valide que
quand, le bouton

modifier a été appuyé, voici le code de celui-ci :

Private Sub ModifierNourisse_Click()

Dim reponseModifier, Ctrl
reponseModifier = MsgBox("Voulez-vous modifier toutes
les données ?", _

vbYesNo + vbQuestion, "VALIDATION")
If reponseModifier = vbYes Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Value = ""

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Locked = False

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.BackColor = &HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.ControlTipText = _

"Saisissez ici vos données."
Next Ctrl
Else
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.BackColor > > >&HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.Locked > > >False

If TypeOf Ctrl Is MSForms.TextBox
Then

Ctrl.ControlTipText = _
"Saisissez ici vos données."
Next
End If
ValiderNourrice.Visible = True
ModifierNourisse.Visible = False
cbxTitre.Visible = True
Label9.Visible = True
txtNom.Visible = False
Label1.Visible = False
cbxTitre.BackColor = &HC0C0FF
cbxTitre.SetFocus
End Sub

Je vous remercie par avance, Ouille


.








Avatar
ouille
Le forum

Merci, JDan et à Hervé.

Ouille


Salut,
Si tu veux que la valeur de la variable dure toute la session (aussi
longtemps qu'Excel est ouvert), déclare la publique dans un module standard
:

'variable qui garde sa valeur
'aussi longtemps que la Form est chargée
Dim Modif As Boolean

Private Sub ModifierNourisse_Click()
Modif = True
'ici ton code...
'bla bla bla....
End Sub

Private Sub txtDateAgrement_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If Modif = True Then
Calendar1.Visible = True
'remise à false de la variable
Modif = False
End If
End Sub

Hervé.

"ouille" a écrit dans le message de news:

J-Dan, le forum

J-Dan, merci pour ta réponse et pour l'llègement du code, c'est souvent
que je ne le fais pas, et c'est vrai ue c'est pratique.


Pour le reste j'ai du mal m'exprimer, jusqu'a présent je faisait un double
click pour modifier la date du controle, mais je n'avait pas de boiton

"Modifier", maintenant j'ai un bouton qui me sert a modifier les données,
avec la demande si je veux tout modifier ou non, mais je voudrais que la
fonction du double click ne se face que si j'appui sur ce bouton et pas
comme maintenat que cela le fait dés l'ouverture de l'UserForm, j'espère
avoir été plus explicite.

Merci, encore Ouille


bonjour Ouille,

ta reponse est dans la question , si tu veux faire
apparaitre ton Calendar apres acceptation (vbyes) du
message "Validation" :

If reponseModifier = vbYes Then
For Each Ctrl ....
next ....
Calendar1.Visible = True

Else
For Each Ctrl ....
next ....
End If

tu peux aussi alleger un peu ton code :

If reponseModifier = vbYes Then

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.Value = ""
.Locked = False
.BackColor = &HC0C0FF
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
Calendar1.Visible = True

Else

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.BackColor = 12632319
.Locked = False
.ControlTipText = "Saisissez ici vos données."
End With
End If
Next
End If

Est-ce que cela te va ?

-----Message d'origine-----
Salut a toute et tous,

J'utilisait ce code, pour appeler le calendrier :

Private Sub txtDateAgrement_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)

Calendar1.Visible = True
End Sub

Mais comme je ne voudrai pas que cet évenement se fasse
a chaque double

click sur ce controle, j'aimerai qu'il soit valide que
quand, le bouton

modifier a été appuyé, voici le code de celui-ci :

Private Sub ModifierNourisse_Click()

Dim reponseModifier, Ctrl
reponseModifier = MsgBox("Voulez-vous modifier toutes
les données ?", _

vbYesNo + vbQuestion, "VALIDATION")
If reponseModifier = vbYes Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Value = ""

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Locked = False

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.BackColor = &HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.ControlTipText = _

"Saisissez ici vos données."
Next Ctrl
Else
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.BackColor > > > >&HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.Locked > > > >False

If TypeOf Ctrl Is MSForms.TextBox
Then

Ctrl.ControlTipText = _
"Saisissez ici vos données."
Next
End If
ValiderNourrice.Visible = True
ModifierNourisse.Visible = False
cbxTitre.Visible = True
Label9.Visible = True
txtNom.Visible = False
Label1.Visible = False
cbxTitre.BackColor = &HC0C0FF
cbxTitre.SetFocus
End Sub

Je vous remercie par avance, Ouille


.













Avatar
J-Dan
ouille,

Si j'ai bien compris,
1) tu as un bouton appele "ModifierNourisse"
2) Cliquer dessus appelle un MsgBox qui te demande si tu
veux modifier les donnees de ton formulaire
3) si on repond "oui", tu veux que le calendrier soit
visible.

Est-ce que tu ne pourrais pas avoir un
bouton "ModifierNourisse" si tu veux, pour eventuellement
corriger les saisies, et un deuxieme "Valider", ce qui te
ferait l'economie du MsgBox.

C'est a peu pres ca ?

J-Dan

-----Message d'origine-----
J-Dan, le forum

J-Dan, merci pour ta réponse et pour l'llègement du
code, c'est souvent que je ne le fais pas, et c'est vrai

ue c'est pratique.

Pour le reste j'ai du mal m'exprimer, jusqu'a présent
je faisait un double click pour modifier la date du

controle, mais je n'avait pas de boiton "Modifier",
maintenant j'ai un bouton qui me sert a modifier les
données, avec la demande si je veux tout modifier ou
non, mais je voudrais que la fonction du double click ne
se face que si j'appui sur ce bouton et pas comme
maintenat que cela le fait dés l'ouverture de
l'UserForm, j'espère avoir été plus explicite.

Merci, encore Ouille


bonjour Ouille,

ta reponse est dans la question , si tu veux faire
apparaitre ton Calendar apres acceptation (vbyes) du
message "Validation" :

If reponseModifier = vbYes Then
For Each Ctrl ....
next ....
Calendar1.Visible = True

Else
For Each Ctrl ....
next ....
End If

tu peux aussi alleger un peu ton code :

If reponseModifier = vbYes Then

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.Value = ""
.Locked = False
.BackColor = &HC0C0FF
.ControlTipText = "Saisissez ici vos
données."


End With
End If
Next
Calendar1.Visible = True

Else

For Each Ctrl In Me.Controls
If TypeName(Ctrl) = "TextBox" Then
With Ctrl
.BackColor = 12632319
.Locked = False
.ControlTipText = "Saisissez ici vos
données."


End With
End If
Next
End If

Est-ce que cela te va ?

-----Message d'origine-----
Salut a toute et tous,

J'utilisait ce code, pour appeler le calendrier :

Private Sub txtDateAgrement_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)

Calendar1.Visible = True
End Sub

Mais comme je ne voudrai pas que cet évenement se
fasse



a chaque double
click sur ce controle, j'aimerai qu'il soit valide
que



quand, le bouton
modifier a été appuyé, voici le code de celui-ci :

Private Sub ModifierNourisse_Click()

Dim reponseModifier, Ctrl
reponseModifier = MsgBox("Voulez-vous modifier toutes
les données ?", _

vbYesNo + vbQuestion, "VALIDATION")
If reponseModifier = vbYes Then
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Value = ""

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.Locked = False

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.BackColor = &HC0C0FF

If TypeOf Ctrl Is MSForms.TextBox Then
Ctrl.ControlTipText = _

"Saisissez ici vos données."
Next Ctrl
Else
For Each Ctrl In Me.Controls
If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.BackColor =

&HC0C0FF
If TypeOf Ctrl Is MSForms.TextBox
Then Ctrl.Locked =

False
If TypeOf Ctrl Is MSForms.TextBox
Then

Ctrl.ControlTipText = _
"Saisissez ici vos données."
Next
End If
ValiderNourrice.Visible = True
ModifierNourisse.Visible = False
cbxTitre.Visible = True
Label9.Visible = True
txtNom.Visible = False
Label1.Visible = False
cbxTitre.BackColor = &HC0C0FF
cbxTitre.SetFocus
End Sub

Je vous remercie par avance, Ouille


.



.