Bonjour,
utilisant un userform calendrier dans mon fichier, j'ai voulu améliorer l'aspect du calendrier en masquant la barre de titre du userform. A cet effet, j'ai appliqué la méthode donnée dans les FAQ (http://excel.developpez.com/faq/?page=Form).
J'ai retranscrit méticuleusement les codes donnés mais lorsque je veux faire apparaitre le calendrier (clic droit sur la cellule concernée), il y a un message d'erreur : "erreur de compilation, un type défini par l'utilisateur ne peut pas être passé ByVal" en pointant sur vrWin à la ligne 13 du code ci-dessous.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
Sub AfficheTitleBarre(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
je pense que les codes donnés dans les FAQ ont été testés mais cela est surprenant quand même. Si quelqu'un a une réponse...Merci d'avance