Empecher le clic et le double clic sur la barre de titre de l'userform

  • Initiateur de la discussion Initiateur de la discussion alias_2003
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

alias_2003

XLDnaute Occasionnel
Bonjour,
J'aimerais empêcher le clic sur la barre de titre de l'userform. J'utilise le code suivant :
Code:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
Dim MonCurseur As point
If x < 10 Or y < 10 Or x > Me.Width - 10 Or y > Me.Height - 30 Then
    GetCursorPos MonCurseur
    If x < 10 Then SetCursorPos MonCurseur.xx + 12, MonCurseur.yy
    If y < 10 Then SetCursorPos MonCurseur.xx, MonCurseur.yy + 12
    If x > Me.Width - 10 Then SetCursorPos MonCurseur.xx - 12, MonCurseur.yy
    If y > Me.Height - 30 Then SetCursorPos MonCurseur.xx, MonCurseur.yy - 12
Else: Application.StatusBar = x & "-" & y
End If
End Sub
Ce code fonctionne bien, mais si l'on va un peu vite, il est possible d'accèder à la barre de titre (caption) de l'userform...
Je précise que je ne souhaite pas utiliser d'api, ni d'evenement userform_layout (j'obtiens une erreur 384 que je n'explique pas...), ni supprimer le caption...
Avez-vous une idée ?
Merci beaucoup,
Amicalement
 
Re : Empecher le clic et le double clic sur la barre de titre de l'userform

Bonsoir Alias,

peut-être comme ceci

Code:
Public Cancel, CloseMode As Boolean
Private Sub CommandButton1_Click()
CloseMode = 1
Cancel = False
Unload Me
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    If CloseMode = 0 Then Cancel = True
End Sub



A+ 😎
 
Re : Empecher le clic et le double clic sur la barre de titre de l'userform

Bonjour lone-wofl, le Forum
Merci de ta réponse ! Ton code fonctionne très bien pour empêcher la fermeture de l'userform par la croix rouge ! Merci !
Dans mon croix ce que j'aimerais si possible rendre la barre des titres inactive bien que présente... Que l'utilisateur ne puisse pas l'atteindre...
Merci beaucoup !
 
Re : Empecher le clic et le double clic sur la barre de titre de l'userform

Bonjour,

voir ce code de Mohamed Lamine Belhannachi
le classeur complet de démonstration
et le même classeur que j'ai nettoyé pour ne garder que la fonction déplacement !

mais attention avec les API 32 et 64 ! il faudrait revoir les déclarations adéquates, ici je ne l'ai pas fait !
 

Pièces jointes

Re : Empecher le clic et le double clic sur la barre de titre de l'userform

Bonjour Roland !
Tes fichiers sont juste excellents !!! Je vais les utiliser sur plein d'application !
Par contre, j'aurais aimé (si c'est possible...) une solution sans api...
Merci encore 🙂 !
 
Re : Empecher le clic et le double clic sur la barre de titre de l'userform

bonjour,

malheureusement non !
perso je les ai évite un maximum malgré leurs utilités j'en convient !
exceptionnellement GetSystemMetrics, qui je pense ne devrait jamais trop poser de problème(quoique !?)
car apparemment, que je sache (si qq peut apporter la solution du contraire je suis preneur), on ne test pas Win64 !?
Code:
' GetSystemMetrics résolution (0)=X (1)=Y
#If VBA7 Then 'VBA7 depuis office 2010
    Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#Else '< VBA7 donc 32
    Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
#End If

quand c'est pour soit on peut toujours solutionner si problème avec une nouvelle version
mais si c'est un classeur qui tourne en entreprise et que ça plante avec des API qui doivent être déclarées pour un system 64, et que la personne qui l'a réalisé n'est plus là (mon cas avec mon fils, si demain je n'y suis plus !?) c'est la cata pour lui !?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
8
Affichages
2 K
Retour