Microsoft 365 Ne pas afficher l'entête de l'UserForm

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite un beau WE 🙂

Voilà des mois que je cherche et je ne trouve pas comment faire pour Ne pas afficher l'entête d'un UserForm
Pour la Combobox, grâce à Job75, c'est résolu (encore merci🙂)
photo ci dessous :
1598710799239.png


Mais pour l'UserForm, c'est une autre histoire et peut-être pas possible ???
Pour ne pas donner d'explications qui risquent de ne pas être claires, je joins un fichier test.
Auriez-vous la solution ?
Avec mes remerciements,
Amicalement,
lionel,
 

Pièces jointes

Reprends le fichier du Post #4 que je viens de modifier en reportant toutes les déclarations API dans un module dédié Module_APIWindows que j'utilise maintenant pour éviter d'avoir à me prendre la tête sur les déclarations de l'API pour les fonctions les plus couramment utilisées et qui évolue au fil du temps lorsqu'il faut ajouter 1 ou 2 fonctions ce qui est le cas ici.

Donc remplace le Module_APIWindows du fichier de l'Agenda Google par celui fichier du Post #4.
Et pour le code du UserForm incluant la fonction de suppression de la barre de titre, plus besoin des déclarations. Ce seul code suffit (comme dans le fichier du Post #4).
VB:
'https://www.teachexcel.com/excel-tutorial/2026/removing-the-title-bar-from-a-userform

Sub HideBar(frm As Object)
    Dim Style As Long, Menu As Long, hWndForm As Long
  
    '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 UserForm_Initialize()
    HideBar Me
End Sub
 
C'est un problème de déclaration des API entre version 32 et 64 bits d'Office
Oui car Long et LongPtr qui ne s'aiment pas en 64 bits.
Reprends le fichier et dis si ça marche cette fois.

MS dit: https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/longptr-data-type
LongPtr n’est pas un véritable type de données, car il est converti en Long dans les environnements 32 bits, ou en LongLong dans les environnements 64 bits. L’utilisation de LongPtr permet d’écrire du code portable exécutable à la fois dans les environnements 32 bits et 64 bits. Utilisez LongPtr pour les pointeurs et les handles.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
163
Réponses
12
Affichages
620
Retour