Microsoft 365 Revenir à la feuille "Appels" si TexTBox1 visible = true

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,
Je vous souhaite une très belle journée :)

Je n'arrive encore pas à trouver le bon code :
Dans mon exemple de code, en feuille "Appels" le TEXTBOX1 est ouvert.
Si clic pour aller sur une autre feuille, je souhaite le retour à la Feuille "Appels" puisque que le TEXTBOX1 est ouvert.
J'ai fait ce code qui ne fonctionne pas ! :
VB:
Private Sub Worksheet_Activate()
    If TextBox1.Visible = True Then
    Sheets("Appels").Select
    Exit Sub
    End If
End Sub

Que j'ai placé dans le code de la Feuille cliquée.
Blocage sur cette ligne : If TextBox1.Visible = True Then

Auriez-vous le bon code ?
Si nécessaire, je ferai un p'tit fichier test.

Je vous remercie vivement,
Entre temps, je continue recherches et tentatives,
Amicalement,
lionel,
[/CODE]
 
Dernière édition:
Solution
Bonjour Lionel,

TextBox1 étant dans la feuille "Appels" il faut que le code soit dans cette feuille, donc utiliser :
VB:
Private Sub Worksheet_Deactivate()
    If TextBox1.Visible Then
    Me.Select
    Exit Sub
    End If
End Sub
Si le code était dans une autre feuille il faudrait préciser la feuille devant TextBox1.

A+

job75

XLDnaute Barbatruc
Bonjour Lionel,

TextBox1 étant dans la feuille "Appels" il faut que le code soit dans cette feuille, donc utiliser :
VB:
Private Sub Worksheet_Deactivate()
    If TextBox1.Visible Then
    Me.Select
    Exit Sub
    End If
End Sub
Si le code était dans une autre feuille il faudrait préciser la feuille devant TextBox1.

A+
 

Valtrase

XLDnaute Occasionnel
Salut usine à gaz

Quand tu dis :
Dans mon exemple de code, en feuille "Appels" le TEXTBOX1 est ouvert.
Je pense que tu veux dire que ton TextBox1 est en cours d'édition ?
Ici dans ton code ce n'est pas le cas tu vérifie qu'il est bien visible, il peut être bien visible mais plus en cours d'édition...
If Sheets("Appels").TextBox1.Visible = True Then
Sheets("Appels").Select
Exit Sub
End If
End Sub
Donc à mon avis tu dois plutôt te tourner vers la Méthode TextBox1_LostFocus()
VB:
Private Sub TextBox1_LostFocus()
    ' // Mettre ici le code de validation pour pouvoir passer à l'autre feuille
    ' // ...
    ' // ...
End Sub
 
Dernière édition:

Usine à gaz

XLDnaute Barbatruc
Bonjour Valtrase,

Merci à toi pour ton code :)
"ton TextBox1 est en cours d'édition ?"
Il est visible dans la feuille "Appels" (en cours d'édition, je ne sais pas lol)

Ton code, je le place dans le code de la Feuille "Appels" je suppose ou c'est dans un module ?
Je vais tester les 2 :)
lionel,
 

Usine à gaz

XLDnaute Barbatruc
Alors là ! lol, je ne sais pas te répondre :)
mais voilà une capture d'écran :
1624366747772.png

@+ :)
 

Usine à gaz

XLDnaute Barbatruc
Re-Bonjour Valtrase,

Merci pour tes messages mais je suis très occupé et pas le temps de faire un fichier pour l'instant.
C'est vrai que j'aurais aimé connaître le fonctionnement avec Private Sub TextBox1_LostFocus() mais ce sera pour plus tard :)

D'ailleurs Gérard (job75) m'a donné la solution en #post 2.
lionel,

Bonjour Gérard, encore Merci :)
 

Discussions similaires

Statistiques des forums

Discussions
315 138
Messages
2 116 685
Membres
112 836
dernier inscrit
MOHAMED69