Microsoft 365 UserForm : Supprimer la barre de titre d'un formulaire

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une beau WE :)

Il y a quelques temps, j'avais récupéré sur le site :
Un code permettant de Supprimer la barre de titre d'un formulaire.
Souhaitant maintenant le mettre dans mon fichier, j'ai copié le code.
dans l'UserForm :
VB:
Sub HideBar(frm As Object)
#If VBA7 Then
  Dim Style As LongPtr, Menu As Long, hWndForm As LongPtr
#Else
  Dim Style As Long, Menu As Long, hWndForm As Long
#End If
  'une classe de UserForm est de type ThunderXFrame ou ThunderDFrame (selon version)
  hWndForm = FindWindow("Thunder" & IIf(Application.Version Like "8*", "X", "D") & "Frame", Me.Caption)
  Style = GetWindowLong(hWndForm, GWL_STYLE)
  Style = Style And Not WS_CAPTION
  SetWindowLong hWndForm, GWL_STYLE, Style
  DrawMenuBar hWndForm
End Sub

Private Sub Label1_Click()
End Sub

Private Sub UserForm_Activate()
HideBar Me
' Récupération de l'heure d'affichage de la BdD
TimeDebut = Timer
' Donne la main à excel pour facilité l'affichage de la BdD
DoEvents
' Boucle tant que 2 secondes ne se sont pas écoulé
While Timer < TimeDebut + 1
Wend
' Fermeture de la BdD
Unload Me
End Sub
et un code dans un module : Module_APIWindows

Ce code fonctionne bien et supprime bien la barre de titre d'un formulaire.
Cependant, l'affichage de l'UserForm n'est pas bon :
1624089356531.png

Et je n'arrive pas à trouver ce qu'il faut modifier pour avoir cette affichage :
1624089441065.png

Auriez-vous la solution ?

En cas, je joins le fichier test.
Je vous remercie vivement,
Amicalement,
Lionel,
 

Pièces jointes

  • UserForm.test2.xlsm
    50.9 KB · Affichages: 18
Dernière édition:
Solution
Bonjour Lionel, Phil69970,

Perso j'utiliserais :
VB:
Private Sub UserForm_Activate()
Me.Height = Label1.Height 'ajuste la hauteur
HideBar Me
' Récupération de l'heure d'affichage de la BdD
TimeDebut = Timer
' Donne la main à excel pour facilité l'affichage de la BdD
DoEvents
' Boucle tant que 2 secondes ne se sont pas écoulé
While Timer < TimeDebut + 5
Wend
' Fermeture de la BdD
Unload Me
End Sub
A+

job75

XLDnaute Barbatruc
Bonjour Lionel, Phil69970,

Perso j'utiliserais :
VB:
Private Sub UserForm_Activate()
Me.Height = Label1.Height 'ajuste la hauteur
HideBar Me
' Récupération de l'heure d'affichage de la BdD
TimeDebut = Timer
' Donne la main à excel pour facilité l'affichage de la BdD
DoEvents
' Boucle tant que 2 secondes ne se sont pas écoulé
While Timer < TimeDebut + 5
Wend
' Fermeture de la BdD
Unload Me
End Sub
A+
 

job75

XLDnaute Barbatruc
Ceci est un peu plus confortable :
VB:
Private Sub UserForm_Activate()
With Label1
    .TextAlign = fmTextAlignCenter
    .Caption = vbLf & "Commentaire Modifié !"
    .Left = 0
    .Top = 0
    .Height = 54
    .Width = Me.Width
    Me.Height = .Height
End With
HideBar Me
DoEvents
' Récupération de l'heure d'affichage de la BdD
TimeDebut = Timer
' Donne la main à excel pour facilité l'affichage de la BdD
' Boucle tant que 5 secondes ne se sont pas écoulé
While Timer < TimeDebut + 5
Wend
' Fermeture de la BdD
Unload Me
End Sub
 

Pièces jointes

  • UserForm.test(1).xlsm
    53.1 KB · Affichages: 26

Discussions similaires

Réponses
8
Affichages
640

Statistiques des forums

Discussions
312 092
Messages
2 085 218
Membres
102 826
dernier inscrit
ag amestan