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
Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
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
Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
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
Charles Racaud
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
35
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