Microsoft 365 UserForm souci d'affichage

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 🙂

Je reviens vers nos ténors car je bute sur un p'tit souci mais compliqué pour moi et je n'arrive pas à le résoudre.
J'ai un UserForm pour lequel j'utilise des APIs (merci aux ténors qui me les ont passé) :
- Pour masquer la barre de titre,
- Pour le positionner,
Comme vous le verrez, tout fonctionne bien sans souci (apparemment lol), sauf à l'affichage ... dans ma feuille, au clic cellules "F6 à F15".
En effet :
dans le vba mon UserForm est comme ceci
1659795877774.png

à l'affichage dans ma feuille, au clic cellules "F6 à F15" ... le voilà
1659795266275.png

Les marges grises à droite et en bas ne sont plus les même (elles sont plus grandes).

Je pense que le souci se situe dans les APIs (dans le code de l'UserForm et dans le module "Module_APIWindows".
J'ai tenter de voir mais je n'arrive à comprendre ce qu'il faudrait modifier.

Je joins le fichier test,
Pourriez-vous m'aider à trouver ?
Un grand merci,
Amicalement,
lionel 🙂
 

Pièces jointes

Dernière édition:
Re-Bonjour,

J'ai fini par trouve "l'horrible" responsable du délit lol 🤣😇
C'est lui :
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
Cette ligne : SetWindowLong hWndForm, GWL_STYLE, Style
Il ne serait pas possible de simplifier mes codes ?
Merci à tous 🙂
 
alors
pour commencer j'ai du mal a croire que ce soit un tenor qui t'ai donné le code des declarations des api
ou alors tu a fait un copier coller à la louche 😂 😂 😂 😂

donc on va faire simple
vire moi ce module api et toute les declaration d'api concernant la user 32 sauf celle pour simuler les touches

et met moi simplement ca dans le activate de l'userform
VB:
Private Sub UserForm_Activate()
    Dim hwnd&, H&
    H = Me.Height - (Me.Height - Me.InsideHeight) - 6
    hwnd = ExecuteExcel4Macro("CALL(""user32"",""GetActiveWindow"",""JCC"")")         'api GetActiveWindow
    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & hwnd & ", " & -16 & ", " & &H94000080 & ")")     'api SetWindowLongA
     Me.Height = H
    Call UserformPosSurCell(Me, Cells(ActiveCell.Row, 7))
  End Sub
terminé
tu voulais simplifier ben là t'es servi 😂😂😂😂

allez on teste pour voir
demo.gif


LOL
 
- 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 affichage userform
Réponses
4
Affichages
360
Réponses
2
Affichages
83
Réponses
21
Affichages
223
Réponses
8
Affichages
575
Retour