Je souhaiterai connaître le code vba pour faire réapparâitre automatiquement la précédente userform affichée à l'écran et qui aurait été fermée malencontreusement en cliquant sur la croix rouge (en haut de celle_ci).
En effet, si celle ci est fermée, je ne pourrai plus "naviguer" de feuillles en feuilles facilement et accéder à d'autres userforms.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
UserForm1.Show
End Sub
Attention, il faut faut régler la propriété ShowModal de l'UF à False.
Mais la solution proposée par J-M, d'inhiber la croix de fermeture est de loin la meilleure. Je ne connais plus la syntaxe exacte, mais on doit la retrouver facilement sur le forum.
Je vous remercie pour vos réponses. Je n'arrive pas à faire le code vba indiqué par Pierrot 93. J'aimerai pouvoir le faire. C'est en effet, la meilleur solution, de pouvoir supprimer la croix blanche sur fond rouge.
Peut on mettre ce code au démarrage et arriver dans une feuilleX !
Sinon, j'ai fait un code qui fonctionne bien mais plus long. Il doit être installer dans le nom de la feuille. Si vous avez des améliorations à apporter....
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Menu1.Visible = 0 Then
Menu1.Show vbModeless
Range("B1").Select
Menu1.Top = ActiveCell.Top + 100
End If
exemple (compléter avec chaque donnée à conserver).
Ici, à la fermeture de l'USF par la croix, la saisie de Textbox1 est sauvegardée dans la variable "alpha". A la réouverture, TextBox1 recharge alpha !
Dans le code de l’USF :
.
Code:
Private Sub UserForm_Initialize()
TextBox1 = alpha
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
alpha = TextBox1
End Sub
Dans le code d’un module :
Code:
Public alpha
Il y aura problème si tu as prévu de compléter les champs avec des données précises à l'initialisation de l'USF.