Programmer en vb
Bonjour et bienvenue,

vous venez de vous inscrire et vous souhaitez avoir accès aux différents forum.
il vous suffit alors de poster une présentation sur le forum "Présentation" ou divers sujets
votre accès aux autres forums sera automatiquement autorisé.

A vos claviers :

Merci d'avoir pris le temps de lire.
Merci pour votre inscription.

L'équipe de Programmer-en-VB
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Statistiques
Nous avons 120 membres enregistrésL'utilisateur enregistré le plus récent est TutoariiNos membres ont posté un total de 6300 messagesdans 706 sujets
Recherche dans les forums

Utiliser cette méthode afin de trouver rapidement les discussions disponible sur notre forum.


Utiliser le bouton résolu

Dans votre message d'origine
cliquer sur le bouton



Ensuite tout en bas sur
Modifier le titre du sujet
cliquer sur le bouton

Résolu !!!

Ensuite changer l’icône du sujet par le bouton

Voilà pas plus compliqué que cela.


Merci pour votre présence ou passage sur le site de programmer-en-vb

Partenaires

créer un forum



Annuaire referencement


Flux RSS

MSN 
Novembre 2018
LunMarMerJeuVenSamDim
   1234
567891011
12131415161718
19202122232425
2627282930  

Calendrier


Partagez
Aller en bas
avatar
grisan29
Modérateur
Modérateur
Localisation : BRETAGNE Nord 29
Messages : 838
Date d'inscription : 25/07/2013
http://pascalcuisines.fr

supprimer la croix sur un userform

le Ven 20 Mai - 18:49
bonjour a tous et toutes

voici un code a mettre dans l'userform
Code:
Option Explicit
Private Sub CommandButton1_Click()
    Unload Me
End Sub

Private Sub CommandButton2_Click()
    activerCroix Me
End Sub


Private Sub UserForm_Initialize()
  SupprimerCroixFermeture Me
End Sub
puis celui-ci a mettre dans un module
Code:
Option Explicit

Declare Function GetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLongA Lib "User32" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function FindWindowA Lib "User32" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Sub SupprimerCroixFermeture(USF As UserForm)

Dim hWnd As Long
    hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", USF.Caption)
    SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
end sub

Sub activerCroix(USF As UserForm)

Dim hWnd As Long
    hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", USF.Caption)
    SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H80000
End Sub

et le tour est joué plus de croix
sans oublier de mettre un bouton de fermeture sinon pas possible de fermer l'userform son code est en bas du code de l'userform

usez en bien surtout

il y aussi un code pour dire a l'utilisateur qu'il ne peux pas fermer par la croix

Code:
Private Sub Userform_QueryClose(Cancel As Integer, CloseMode
As Integer) If CloseMode = 0 Then MsgBox "Vous pouvez pas quitter par
ici" Cancel = CloseMode = 0 End Sub


qui est donner par Myta dans un autre forum excel.

voici un classeur pour que vous puissiez contrôler mes codes

a l'ouverture du classeur la croix a disparu le clic sur réactiver la croix la fait revenir

_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en résolu.
 
Dans votre message d'origine

cliquer sur le bouton



Ensuite tout en bas sur 
Modifier le titre du sujet 
cliquer sur le bouton 

Résolu !!!

avatar
IFFIC
Step_Three_VBA
Step_Three_VBA
Localisation : Sud Breizh ar mor
Messages : 443
Date d'inscription : 25/05/2013

Re: supprimer la croix sur un userform

le Sam 21 Mai - 19:08
Merci Pascal pour le rappel de cette méthode qui rend souvent plus sympa les usf.

Cependant, si je puis me le permettre, j'ajouterais deux petits trucs:

- Une adaptation pour 32 ou 64 bits (Souvent utile).
- Le choix de supprimer la totalité de la bande bleue, ou simplement la croix.

(Tu dois te souvenir que je l'utilisais beaucoup dans une certaine application ... Very Happy )

Amicalement,
Yves




Code:
#If VBA7 Then ' On est en 64 Bits


    Declare PtrSafe Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nindex As Long) As Long


    Declare PtrSafe Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nindex As Long, ByVal dwNewLong As Long) As Long


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


    Declare PtrSafe Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long


#Else ' On est en 32 Bits


    Declare Function GetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nindex As Long) As Long


    Declare Function SetWindowLongA Lib "user32" (ByVal hWnd As Long, ByVal nindex As Long, ByVal dwNewLong As Long) As Long


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


    Declare Function DrawMenuBar Lib "user32" (ByVal hWnd As Long) As Long


#End If


Sub CACHER_BANDE_BLEUE(USF As UserForm)


Dim hWnd&


hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", USF.Caption)


SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And Not &HC00000: DrawMenuBar hWnd


End Sub


 


Sub CACHER_CROiX(USF As UserForm) ' Ceci pourrait servir plus tard, et laisser le droit de déplacer l'USF


Dim hWnd&


hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", USF.Caption)


SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF


End Sub

avatar
grisan29
Modérateur
Modérateur
Localisation : BRETAGNE Nord 29
Messages : 838
Date d'inscription : 25/07/2013
http://pascalcuisines.fr

Re: supprimer la croix sur un userform

le Sam 21 Mai - 19:53
Bonsoir IFFIC Cool

C'est a ton honneur d’apporter une touche a mon post pour l'améliorer comme tu sais le faire Cool
bien sur que je sais d'où viens ce code car c'est d'un classeur qui porte le nom de mon métier Smile
bon weekend au sud29 et surtout a toi

_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en résolu.
 
Dans votre message d'origine

cliquer sur le bouton



Ensuite tout en bas sur 
Modifier le titre du sujet 
cliquer sur le bouton 

Résolu !!!

avatar
grisan29
Modérateur
Modérateur
Localisation : BRETAGNE Nord 29
Messages : 838
Date d'inscription : 25/07/2013
http://pascalcuisines.fr

Re: supprimer la croix sur un userform

le Jeu 7 Juil - 23:22
bonsoir/bonjour a tous
voici un code plus simple qui enlève la croix sur l'userform que l'on veux du moins en mettant le code bien sur, mais il ne fait pas  honneur a celui d'IFFIC ci dessus car il n'y as pas comme il le dit
iffic a écrit:Une adaptation pour 32 ou 64 bits (Souvent utile).


dans le code de l'userform rajouter le code ci-dessous

Code:
Public Sub SupprimerFermeture(USF As UserForm)
    Dim hWnd       As Long
    hWnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
                       "X", "D") & "Frame", USF.Caption)
    SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) And &HFFF7FFFF
End Sub


puis dans l'initialisation de l'userform

Code:
SupprimerFermeture Me



puis dans un module standard

Code:
Declare Function GetWindowLongA Lib "User32" _
    (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLongA Lib "User32" _
    (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

et voila plus de croix, mais surtout mettez un bouton de fermeture au cas où Wink

_________________
Pascal
http://vbaddict.altervista.org/Fichier_upload/grisan29/13.php

Comment mettre votre sujet en résolu.
 
Dans votre message d'origine

cliquer sur le bouton



Ensuite tout en bas sur 
Modifier le titre du sujet 
cliquer sur le bouton 

Résolu !!!

Contenu sponsorisé

Re: supprimer la croix sur un userform

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum