Affichage d'un UserForm sous condition

henrylandes

XLDnaute Nouveau
Bonjour,

J'ai dans un fichier 5 onglets. Si on clique sur un de ces 5 onglets, un UserForm apparaît (Userform3)et qui se trouve être l'aide en ligne. Ce UserForm3 est constitué d'un label et d'une image. Si on clique sur le label du Userform3 on ouvre l'aide (UserForm7) et le userform3 se referme automatiquement.

Si on réduit le userForm7 afin d'avoir l'aide en ligne et si je vais sur un autre des 5 onglets où s'affiche automatiquement le userform3, le programme bug. Il me marque "Erreur d'execution '401' impossible d'afficher une feuille non modale lorsqu'une feuille modale est affichée".

Est-il possible de ne pas faire afficher le Userform3 présent sur les autres onglets si le userform7 est déjà ouvert ?

Merci.
 

henrylandes

XLDnaute Nouveau
Re : Affichage d'un UserForm sous condition

Le problème c'est que je veux que le userForm3 apparaisse systématiquement lorsqu'on clique sur un des 5 onglets sauf si on ouvre au moins 1 fois l'aide (userform7) en cliquant sur le label présent sur le userform3.

j'explique : un utilisateur n'est pas obligé d'ouvrir le userform7 en cliquant sur le label présent dans le userform3. Si il n'ouvre pas le userform7, il aura le userform3 qui s'affichera systématiquement lorsqu'il ira sur un des 5 onglets. Il pourra par contre fermer le userform3 mais si il va sur un autre onglet le userform3 réapparaitra.
Par contre si l'utilisateur clique sur le label présent dans le userform3 afin d'ouvrir le userform7, il pourra réduire le userform7 mais si il va sur un autre onglet il faudrait que le userform3 ne s'affiche pas du fait que le userform7 est déjà ouvert.
 

henrylandes

XLDnaute Nouveau
Re : Affichage d'un UserForm sous condition

Ca y est j'ai trouvé une solution et voici ma réponse.

Au départ sur les 5 onglets j'avais le userform3 qui apparaissait pour cela j'avais mis sur ces 5 onglets les codes suivants :
Code:
Private sub worksheet_activate ()
userform3.show vbmodeless
end sub

Code:
Private sub worksheet_deactivate ()
unload userform3
end sub

Maintenant j'ai supprimé de ces 5 onglets ces deux codes et j'ai mis ton code légèrement modifié dans Thisworkbook
Code:
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Not UserForm7.Visible Then UserForm3.Show vbModeless
End Sub

Avec cette modification j'ai bien mon Userform3 qui s'ouvre non plus sur les 5 onglets initialement prévus mais sur tous les onglets (tant pis) et quand je clique sur le label présent dans ce userform3 pour ouvrir l'aide (userform7) le userform3 se ferme de lui même. De plus si l'utilisateur réduit le userform7 afin d'avoir l'aide toujours d'ouverte, le userfom3 ne s'affiche plus sur les autres onglets.
Si il ferme l'aide (userform7) si il va sur un autre onglet le userform3 réapparaîtra.

Voilà en espérant avoir été clair.

Merci pour ta patience.

Post clôturé.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 843
Messages
2 092 758
Membres
105 527
dernier inscrit
GPGA45