OVH Cloud OVH Cloud

useform

4 réponses
Avatar
omdrag
Comment fermer un userform lorsque l'on change de feuille??
Et comment le r=E9ouvrir si l'on res=E9lectionne la feuille ou=20
il s'affichait au d=E9part?

4 réponses

Avatar
isabelle
bonjour,

copie ces macro sur le module de classe de la feuille ou a été ouvert le
userform.

Private Sub Worksheet_Deactivate()
UserForm1.Hide
End Sub

Private Sub Worksheet_Activate()
UserForm1.Show
End Sub

isabelle


Comment fermer un userform lorsque l'on change de feuille??
Et comment le réouvrir si l'on resélectionne la feuille ou
il s'affichait au départ?


Avatar
omdrag
Merci de ton aide isabelle, cependant les sheets qui vont
entrainé l'ouverture ou la fermeture du userform se trouve
dans un autre worbooks qui ne mets pas accessible au
départ...Si tu veux le workbooks ACCUEIL crée un workbook
Travail (par un opentext) où vont se trouver les futurs
pages...Donc impossible de rentrer quoi que ce soit dans
le module de classe puisque ce workbooks n'existe pas au
départ...
Tu comprends??
Merci
-----Message d'origine-----
bonjour,

copie ces macro sur le module de classe de la feuille ou
a été ouvert le

userform.

Private Sub Worksheet_Deactivate()
UserForm1.Hide
End Sub

Private Sub Worksheet_Activate()
UserForm1.Show
End Sub

isabelle


Comment fermer un userform lorsque l'on change de
feuille??


Et comment le réouvrir si l'on resélectionne la feuille
ou


il s'affichait au départ?
.





Avatar
Alain CROS
Bonjour.

Essaye avec un Module de classe.
J'ai supposé que la feuille qui doit afficher le UserForm s'appelle "MaFeuille" et que le module de classe créé s'appelle Class1

Dans VBE Insertion Module de classe.
Tu colle ceci.

Public WithEvents MonApp As Application
Private Sub MonApp_SheetActivate(ByVal Sh As Object)
If Not Sh.Parent Is Workbooks("Travail") Then
If Sh.Name = "MaFeuille" Then
UserForm1.Show
End If
End If
End Sub
Private Sub MonApp_SheetDeactivate(ByVal Sh As Object)
If Not Sh.Parent Is Workbooks("Travail") Then
If Sh.Name = "MaFeuille" Then
UserForm1.Hide
End If
End If
End Sub

Dans VBE Insertion Module.
Tu colle ceci.

Public App As Class1

Dans VBE Module ThisWorkbook.
Tu colle ceci.

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set App.MonApp = Nothing
Set App = Nothing
End Sub
Private Sub Workbook_Open()
Set App = New Class1
Set App.MonApp = Application
End Sub

Alain CROS.

"omdrag" a écrit dans le message de news: 085401c3b4c0$9f62d200$
Merci de ton aide isabelle, cependant les sheets qui vont
entrainé l'ouverture ou la fermeture du userform se trouve
dans un autre worbooks qui ne mets pas accessible au
départ...Si tu veux le workbooks ACCUEIL crée un workbook
Travail (par un opentext) où vont se trouver les futurs
pages...Donc impossible de rentrer quoi que ce soit dans
le module de classe puisque ce workbooks n'existe pas au
départ...
Tu comprends??
Merci
-----Message d'origine-----
bonjour,

copie ces macro sur le module de classe de la feuille ou
a été ouvert le

userform.

Private Sub Worksheet_Deactivate()
UserForm1.Hide
End Sub

Private Sub Worksheet_Activate()
UserForm1.Show
End Sub

isabelle


Comment fermer un userform lorsque l'on change de
feuille??


Et comment le réouvrir si l'on resélectionne la feuille
ou


il s'affichait au départ?
.





Avatar
Denis Michon
Bonjour Omdrag,

Dans le ThisWorkbook de ton classeur, copie ce qui suit ...cela devrait être suffisant si j'ai bien compris le sens de ta
question.

Pour trouver le nom de la propriété "CodeName", affiche la fenêtre VBE(visual basic editor) et dans la fenêtre de gauche
(vbaproject) affiche les objets, la première section du nom des objets "Feuille" (pas ceux qui sont entre parenthèses qui
représente le nom de l'onglet de la feuille) représente le codename pour chaque feuille. Cela permettra à l'usager de
modifier le nom des onglets des feuilles, sans modifier le fonctionnement de la macro.

'-----------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object)

If Sh.CodeName = "Feuil1" Then
UserForm1.Show 0
Else
UserForm1.Hide 'or unload userform1
End If

End Sub
'--------------------------


Salutations!


"omdrag" a écrit dans le message de news:0f8601c3b40d$224e7ed0$
Comment fermer un userform lorsque l'on change de feuille??
Et comment le réouvrir si l'on resélectionne la feuille ou
il s'affichait au départ?