Problème cadre userform Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
B
Benoist28200
Membre fidèle
Membre fidèle
Messages : 391
Inscrit le : 28 octobre 2015
Version d'Excel : 2013 FR

Message par Benoist28200 » 20 juillet 2016, 14:45

Bonjour, j'ai trouvé ce code pour supprimer le cadre de mon userform mais ça me mets en erreur les founctions :
Option Explicit
'Pour enlever la barre de titre du UF
Public Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
 
Public Const GWL_STYLE = (-16)
Public Const WS_CAPTION = &HC00000
Public Const SWP_FRAMECHANGED = &H20
 
 
Public Declare Function FindWindowA Lib "user32" _
        (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
        
Public Declare Function GetWindowRect Lib "user32" _
        (ByVal hwnd As Long, lpRect As RECT) As Long
        
Public Declare Function GetWindowLong Lib "user32" Alias _
        "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
 
Public Declare Function SetWindowLong Lib "user32" Alias _
        "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, _
        ByVal dwNewLong As Long) As Long
 
Public Declare Function SetWindowPos Lib "user32" _
        (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, _
        ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, _
        ByVal wFlags As Long) As Long

Sub OteTitleBarre(stCaption As String, pbVisible As Boolean)
Dim vrWin As RECT
Dim style As Long
Dim lHwnd As Long
'- Recherche du handle de la fenêtre par son Caption
   lHwnd = FindWindowA(vbNullString, stCaption)
    If lHwnd = 0 Then
        MsgBox "Handle de " & stCaption & " Introuvable", vbCritical
        Exit Sub
    End If
    GetWindowRect lHwnd, vrWin
    style = GetWindowLong(lHwnd, GWL_STYLE)
    If pbVisible Then
        SetWindowLong lHwnd, GWL_STYLE, style Or WS_CAPTION
    Else
        SetWindowLong lHwnd, GWL_STYLE, style And Not WS_CAPTION
    End If
    SetWindowPos lHwnd, 0, vrWin.Left, vrWin.Top, vrWin.Right - vrWin.Left, _
    vrWin.Bottom - vrWin.Top, SWP_FRAMECHANGED
End Sub
p
pierre.jy
Membre fidèle
Membre fidèle
Messages : 499
Appréciation reçue : 1
Inscrit le : 26 février 2016
Version d'Excel : 2010

Message par pierre.jy » 20 juillet 2016, 15:01

Bonjour,

tu as mis ce code où ? place le dans un nouveau module .. Et si tu as encore des erreurs commence par lire les "messages d'erreurs" pour pouvoir nous les rapporter..
B
Benoist28200
Membre fidèle
Membre fidèle
Messages : 391
Inscrit le : 28 octobre 2015
Version d'Excel : 2013 FR

Message par Benoist28200 » 20 juillet 2016, 15:08

je l' ai déja mis dans un nouveau module, le probleme viendrait du fait que j'utilise excel 64 bits
Avatar du membre
pierrep56
Membre impliqué
Membre impliqué
Messages : 1'149
Appréciations reçues : 187
Inscrit le : 18 juin 2014
Version d'Excel : 2016

Message par pierrep56 » 20 juillet 2016, 15:16

Bonjour à tous,

Les fonctions de la librairy "user32" sont conçues pour les PC 32 bits. En cas d'utilisation sur un PC 64 bits, il faut faire précéder la fonction par un Ptrsafe :
Public Declare PtrSafe Function ...
En cas d'écriture de code pour une appli devant être utilisée indifféremment sur 32 et/ou 64 bits, il faut ajouter une option de compilation conditionnelle, par exemple :
#If VBA7 Then
    Public Declare PtrSafe Function FindWindowA Lib "user32" _
        (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    ' ...
#Else
    Public Declare Function FindWindowA Lib "user32" _
        (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
    ' ...
#End If
Pierre

PS : attention à ne pas confondre PC 32 ou 64 bits et Office 32 ou 64 bits , on peux avoir un PC 64bits avec office 32bits ... (ce qui est plutôt à conseiller en général)
B
Benoist28200
Membre fidèle
Membre fidèle
Messages : 391
Inscrit le : 28 octobre 2015
Version d'Excel : 2013 FR

Message par Benoist28200 » 20 juillet 2016, 15:42

ça fonctionne parfaitement, un grand merci à vous pour vos aides
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message