Userform en Hide sur plusieurs feuilles

Bonjour le forum

J'ai un Userform que j'affiche quand j'ouvre mon classeur par ce code dans ThisWorkbook

Private Sub Workbook_Open()
        With sheets("ADMINISTRATEUR")
            .Activate
            .Range("A1").Activate
        End With
        FRM_Gestion.Show
    End Sub

et aussi par ce code quand je vais ouvrir la feuille "ADMINISTRATEUR" de ce classeur

 Private Sub Worksheet_Activate()
    FRM_Gestion.Show
  End Sub
        

Donc quand je vais ouvrir une autre feuille de ce classeur, je voulais caché l'Userform , donc environ 15 fois.

avec ce code

Private Sub Worksheet_Activate()
 FRM_Gestion.Hide
End Sub

Ma question est:

comment mettre un seul code pour que FRM.Gestion soit Hide quand je quitte la feuille "ADMINISTRATEUR"

je me suis dirigé vers ce code que j'ai mis dans ThisWorkbook

Private sub Sheet.ListObjects_Activate()
Dim i As Integer
    Application.ScreenUpdating = False
    For i = 3 To sheets.Count
        With sheets(i)
            FRM_Gestion.Hide
        End With
     Next
Application.ScreenUpdating = True
End Sub

Mais cela ne fonctionne pas

Merci de vos propositions .

Bonjour Ledzep

Dans ThisWorkbook, il y a des évènements pour ca

SheetActivate ou SheetDesactivate

image

@+

Re le forum

Bonjour BrunoM45

Merci de ta réponse,

Je vais essayer cela demain.

Merci de ta piste

A bientôt

Bonjour le forum

Bonjour BrunoM45

J'ai suivi tes recommandations, sans pour autant réussi à avoir ce que je voulais.

J'ai bien a l'ouverture du classeur FRM_Gestion qui souvre, et quand je vais chercher une autre feuille FRM_Gestion est bien en Hide.

Par contre si je vais rechercher la feuille "ADMINISTRATEUR" la FRM s'ouvre puis se ferme.

as tu une solution à cela ?
Merci de ton aide

Je joint mon fichier

Bonjour Ledzep

La comprehension du SheetActivate semble fastidieuse

Voici le code corrigé

A+

Bonjour le forum

Re BrunoM45

Merci pour ton code

Désolé mais je suis resté sur ma première intention avec l'expression FOR, donc j'ai compris le pourquoi de mon erreur.

Je te répond pendant ma pose .

Merci encore de ton aide.

A bientôt

Bonjour …

Autre proposition : seulement dans ThisWorkbook , n’afficher le formulaire que dans une feuille (Feuil1 ici)

Private Sub Workbook_Open()
    Feuil3.Select 'ou autre que 1 pour activer la première puis ...
    Application.Goto Feuil1.[A1]
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name Like "A*" Then FRM_Gestion.Show 0 Else FRM_Gestion.Hide
End Sub

Remarque : ce serait plus opportun d’inclure le contrôle de l’accès ici plutôt que dans le formulaire, mais c’est une autre histoire ...

Bonjour Le forum

Bonjour Ordonc

Merci pour ta proposition (j'ai ajouté End If ) j'ai remarqué quand j'ai lu ton post qu'il manquait

Donc en essayant ton code j'avais une erreur

J’étais de l'avoir vu (Je suis très loin de vos compétences)

J'alimente ma base grâce Toi et BrunoM45

Merci

A bientôt sur le forum

Rechercher des sujets similaires à "userform hide feuilles"