Desactiver croix [Résolu]

cestlecoeur 11 Messages postés dimanche 6 janvier 2008Date d'inscription 8 décembre 2008 Dernière intervention - 21 nov. 2008 à 20:25 - Dernière réponse : cestlecoeur 11 Messages postés dimanche 6 janvier 2008Date d'inscription 8 décembre 2008 Dernière intervention
- 22 nov. 2008 à 12:28
Bonjour
Je souhaiterais griser la croix (non utilisable) ou ne pas la  faire apparaitre lors de l'ouverture d'un userform.
Cela vous parait il réalisable ?
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
cestlecoeur 11 Messages postés dimanche 6 janvier 2008Date d'inscription 8 décembre 2008 Dernière intervention - 22 nov. 2008 à 12:28
3
Merci
ca marche ... encore merci et désolé ...
Je tenterais de poser la question au bonne endroit bien que je n'ai pas trouver encore pour le VBA ...
désolé je suis blonde ...

Donc pas @+

Merci cestlecoeur 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 84 internautes ce mois-ci

Commenter la réponse de cestlecoeur
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 21 nov. 2008 à 21:49
0
Merci
salut,



<li>
Vous êtes ici : Thèmes / [forum-VISUAL-BASIC_1.aspx Visual Basic 6] / [theme-DIVERS_220.aspx Divers] / [theme-DEBUTANTS_226.aspx Débutants] / desactiver croix</li>



userform = VBA , pas VB6 !
merci de faire attention aux rubriques



<hr />
'    SUPPRIMER LA CROIX D'UN USERFORM (VBA)
'    http://www.codyx.org/snippet_supprimer-croix-userform-vba_257.aspx#826
'    Posté par [ =647037 mortalino ] le 31/10/2006
<hr />





' *** A placer dans les déclarations Du UserForm

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

' *** Placer cette procédure aussi dans le
UserForm
'     dont la croix doit être
supprimée
Private Sub 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
End Sub





'----------------------------------------------------------------



'Remarques :


'Nota : Si pendant l'affichage du UserForm le Caption est modifié,
la croix réapparaitra !







<hr size ="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
Commenter la réponse de PCPT
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 21 nov. 2008 à 21:53
0
Merci
Bonsoir,

Tu vas très vite comprendre l'intérêt de "poster" dans la bonne section... !
Tu as posté ici : Vous êtes ici : Thèmes / Visual Basic 6 / Divers

Je te réponds donc comme si tu développais en VB6 (je te crois...)

Option Explicit



Private Const SC_CLOSE = &HF060&
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long



Private Sub Form_Activate()
  Dim sysmen As Long
    sysmen = GetSystemMenu(Me.hwnd, 0)
    DeleteMenu sysmen, SC_CLOSE, &H0&
End Sub


Ton problème, maintenant (juste pour le cas où tu ne développerais pas sous VB6, mais sous VBA) :
remplacer Me.hwnd (inconnu sous VBA) par un handle à extraire (c'est facile, mais je m'y refuse tant que la présente
 discussion reste là où elle a été ouverte ...)
J'espère que ma réponse sera lue par le plus grand nombre et qu'elle donnera
à réfléchir sur l'intérêt réel et IMPORTANT d'ouvrir une discussion là où il convient de la faire
Commenter la réponse de jmf0
cestlecoeur 11 Messages postés dimanche 6 janvier 2008Date d'inscription 8 décembre 2008 Dernière intervention - 21 nov. 2008 à 23:21
0
Merci
Bien reçu le message.

vous souhaite bonne soirée
Commenter la réponse de cestlecoeur
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 21 nov. 2008 à 23:56
0
Merci
en attendant tu as testé le bout de code que je t'ai fourni?
çà donne quoi?
s'il solutionne ton problème, pense à valider la réponse pour ceux qui chercheraient une question similaire (maintenant que ta question est re-placée)
Commenter la réponse de PCPT
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 22 nov. 2008 à 08:14
0
Merci
Bonjour (et un salut à PCPT),

Voilà donc (pour inhiber la croix en cause) mon code précédent transformé pour un UserForm VBA  :

Option Explicit
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Const SC_CLOSE = &HF060&





Private Sub Form_Activate()
  Dim monhwnd As Long
  monhwnd = FindWindow(vbNullString, Me.Caption)
  DeleteMenu GetSystemMenu(monhwnd, 0), SC_CLOSE, &H0&
End Sub


 
Commenter la réponse de jmf0
jmf0 1566 Messages postés mardi 26 décembre 2000Date d'inscription 5 avril 2013 Dernière intervention - 22 nov. 2008 à 08:22
0
Merci
Re

1) dans mon code : change bien sûr Form par UserForm
2) Je viens d'essayer le code de PCPT : il est plus élégant car il ne se contente pas d'inhiber la croix ==>> il la supprime purement et simplement. Je te le conseille donc.
Commenter la réponse de jmf0

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.