Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Userform / proteger feuille à la fermeture userform

5 réponses
Avatar
Excel...lent
Bonsoir à tous,

J'ai un userform et je souhaiterais pour le finaliser savoir si cela est
possible de lier à sa croix de fermeture une action qui consisterait à
protéger la feuille à partir de laquelle je lance l'userform. ouf...

Je ne sais pas si j'ai été bien clair là mais bon j'ai essayé. lol

Merci de vos conseils.

Cordialement.

Excel...lent

5 réponses

Avatar
Jacques93
Bonjour Excel...lent,

Lors de la fermeture d'un UserForm, l'événement QueryClose est invoqué :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Fermeture du UserForm par la croix"
End If
End Sub

Les différentes valeurs de CloseMode sont :
vbFormControlMenu 0
vbFormCode 1
VbAppWindows 2
VbAppTaskManager 3

Bonsoir à tous,

J'ai un userform et je souhaiterais pour le finaliser savoir si cela est
possible de lier à sa croix de fermeture une action qui consisterait à
protéger la feuille à partir de laquelle je lance l'userform. ouf...

Je ne sais pas si j'ai été bien clair là mais bon j'ai essayé. lol

Merci de vos conseils.

Cordialement.

Excel...lent





--
Cordialement,

Jacques.

Avatar
Excel...lent
Bonsoir Jacques,

Merci pour ton aide. J'avais déjà vu cette possibilité avec QueryClose.
Mon problème justement c'est que je n'arrive pas à ce que l'action de
protéger la feuille à partir de laquelle je lance mon user soit prise en
compte à la fermeture de l'user.
Regarde le code tel que je l'avais saisi :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
ActiveSheet.Protect
End If
End Sub

Quoiqu'il arrive une fois l'user fermé je retrouve ma feuille dessous qui
n'est pas protégée.

Y a t-il une solution à ton avis ?

Cordialement.

Marc
Avatar
Pounet95
Bonjour,
Je ne comprends pas bien !
Tu ouvres ton usf par quel moyen ? un bouton dans une feuille ? un menu ?
A quoi veux-tu arriver ? A empêcher toute modif sur une feuille en
particulier
cad celle affichée 'sous' le usf ?

AMHA, bloque la sortie du usf par la croix ( évènement QueryClose )
et dans le code du bouton de fermeture de celui-ci tu mets de quoi protéger
la dite feuille, non ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"Excel...lent" a écrit dans le message de news:

Bonsoir Jacques,

Merci pour ton aide. J'avais déjà vu cette possibilité avec QueryClose.
Mon problème justement c'est que je n'arrive pas à ce que l'action de
protéger la feuille à partir de laquelle je lance mon user soit prise en
compte à la fermeture de l'user.
Regarde le code tel que je l'avais saisi :

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
ActiveSheet.Protect
End If
End Sub

Quoiqu'il arrive une fois l'user fermé je retrouve ma feuille dessous qui
n'est pas protégée.

Y a t-il une solution à ton avis ?

Cordialement.

Marc




Avatar
Excel...lent
Salut Pounet95,

En fait usf s'ouvre automatiquement à l'ouverture du classeur ( code
ouverture dans ThisWorkbook )
Il s'ouvre avec une feuille derrière. Cette feuille contient les données des
ListBox de usf.
Je peux modifier ces listbox par usf (ajouter une donnée ou enlever une
donnée).
J'ai pris soins de masquer ces listes sur la feuille comma ça quand usf est
fermé on est sur une page blanche.
Sur la feuille il y a un bouton qui peut rappeler usf aussi.

Donc ce que je souhaiterais c'est qu'une fois que des maj ont été faites sur
les contenus des ListBox par l'usf, quand usf se ferme on reprotège la
feuille de données. ( Cette feuille est déprotégée au chargement de usf)

Merci pour ton interêt.

Cordialement.

Excel...lent

N'oubliez pas votre lampe à huile et votre casque et descendez dans ces
mines d'or
pour des explorations fructueuses :
http://www.excelabo.net/
http://frederic.sigonneau.free.fr
http://dj.joss.free.fr/
http://jacxl.free.fr
http://www.cathyastuce.com/excel.htm
Avatar
anonymousA
Bonjour,

c'est bien étrange car le code que tu donnes est juste et ne pose
aucune difficulté en lui-même. Sauf si Activesheet n'est pas la
feuille active que tu crois mais je suppose que bien evidemment ce
n'est pas le cas. Y a t-il d'autres conditions dans ta proc que tu n'as
pas évoqué ou dans la suite du workbook_open ?

A+