Problème de fermeture de userform [Résolu]

Signaler
Messages postés
26
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
30 mai 2007
-
Messages postés
26
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
30 mai 2007
-
Bonjour,

J'ai un gros souci car je ne veux pas que l'on puisse fermer un formulaire en cliquant sur la croix.

Est-il possible de la rendre invisible ou de modifier son action ?

Cordialement,

11 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut Yann,

dans les déclarations de ton UserForm (au dessus de toutes les procédures), colle ceci :

Private Declare Function GetWindowLongA Lib "user32" _
  (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
  (ByVal hwnd As Long, ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "user32" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Et dans UserForm_Initialize :
      Dim hwnd As Long
  hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
    "X", "D") & "Frame", Me.Caption)
  SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,

On peut la désactiver mais pas la rendre invisible
Ajoute ceci dans ta classe:



Private

Const
CS_NOCLOSE
As

Integer
= &H200

Protected

Overrides

ReadOnly

Property
CreateParams()
As
System.Windows.Forms.CreateParams

Get

 
Dim
cp
As
CreateParams =
MyBase
.CreateParams

  cp.ClassStyle = cp.ClassStyle
Or
CS_NOCLOSE

 
Return
cp

End

Get

End

Property





Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

tu parles de UserForm ! T'es en vb.net ou VBA ?
Si tu es en VBA excel, j'ai un code pour effacer la croix d'un UserForm !

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Messages postés
26
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
30 mai 2007

Salut Mortalino,

Ton code m'intéresse  et je travaille en VBA Excel ...

Par avance, Merci ...

Yann
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Tu travaille en vba ???
Alors pourquoi t'as mis dans la catégorie vb.net ?



En passant:
Salut Mortalino

Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut Kenji

Il y en a beaucoup qui se trompe, j'arrive à traduire maintenant
UserForm, même dans la cathégorie .net, c'est VBA ! C'est rare que ququn qui fasse du vba enploi le terme Form. (sauf nous, on s'adapte ! lol)

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Haaa, mais il avais mis ca dans le titre. Je n'y avais point fait attention.
Faudras que je m'abitue à ca. Mais ca n'empeche pas qu'il doivent poster dans la bonne catégorie.



Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait plaisir ainsi qu'a n
Messages postés
26
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
30 mai 2007

Merci à vous,



J'ai la réponse à mon interrogation. Le côté plaisant, c'est que en posant une question dans la bonne catégorie, je n'ai toujours pas ma solution.

Merci encore.

Yann.
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
^^ Ouvre tes yeux, 5 messages avant celui ci je t'ai mis la réponse !!!

dans les déclarations de ton UserForm (au dessus de toutes les procédures), colle ceci :

Private Declare Function GetWindowLongA Lib "user32" _
  (ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "user32" _
  (ByVal hwnd As Long, ByVal nIndex As Long, _
  ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "user32" _
  (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Et dans UserForm_Initialize :
      Dim hwnd As Long
  hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
    "X", "D") & "Frame", Me.Caption)
  SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

@++

  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"

Merci de prendre le temps de répondre à ce [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx sondage]
Merci de prendre le temps de lire [reglement.aspx le Règlement CS]   http://www.smileycentral.com/?partner=ZSzeb008_ZNxdm414YYFR
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Ah et tu dis l'avoir mis dans la bonne cathégorie !!
La bonne aurait été ceci : [infomsg.aspx Thèmes] / [infomsgf_VB-NET-VB-2005_40.aspx Visual Basic 6] / [infomsgt_TRUCS-ASTUCES_243.aspx LANGAGE DERIVE] / [infomsgt_TRUCS-ASTUCES_243.aspx VBA ]/ problème de fermeture de userform

@++

  --Mortalino--
Le mystérieux chevalier, "Provençal,
Messages postés
26
Date d'inscription
mercredi 19 janvier 2005
Statut
Membre
Dernière intervention
30 mai 2007

Désolé, je ne me tromperai plus et je ferai attention.

J'ai un autre souci et si tu veux bien le lire:
Dans un formulaire, je dois recueillir et exploiter une quinzaine de réponses (combos, textbox, ... etc), et les mettre en forme dans un fichier *.doc
Question :
Comment remplir un fichier DOC avec des données Excel sans quitter le langage VBA du fichier Excel de travail ?
( le fichier doc est envoyé par la suite par mail sous Outlook)

Cordialement, Yannick