Problème de fermeture de userform

Résolu
cs_simplementyann Messages postés 26 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 30 mai 2007 - 13 août 2006 à 17:33
cs_simplementyann Messages postés 26 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 30 mai 2007 - 16 août 2006 à 13:23
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

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
15 août 2006 à 23:29
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"
3
Utilisateur anonyme
13 août 2006 à 18:33
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
14 août 2006 à 03:11
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"
0
cs_simplementyann Messages postés 26 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 30 mai 2007
15 août 2006 à 23:21
Salut Mortalino,

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

Par avance, Merci ...

Yann
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
16 août 2006 à 00:01
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 août 2006 à 00:07
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"
0
Utilisateur anonyme
16 août 2006 à 00:15
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
0
cs_simplementyann Messages postés 26 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 30 mai 2007
16 août 2006 à 12:56
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.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 août 2006 à 13:01
^^ 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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
16 août 2006 à 13:05
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,
0
cs_simplementyann Messages postés 26 Date d'inscription mercredi 19 janvier 2005 Statut Membre Dernière intervention 30 mai 2007
16 août 2006 à 13:23
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
0
Rejoignez-nous