XL 2016 redimensionner un userform avec la souris

Fabien35200

XLDnaute Nouveau
Bonjour à tous,

je cherche à pouvoir redimensionner un userform avec la souris comme toute fenetre sur windows.J ai testé ce code parmis bcp d autre mais aucun effet:


VB:
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    If Button = 1 Then
        If X > Me.Width - 10 And Y > Me.Height - 10 Then
            Me.Width = X
            Me.Height = Y
        End If
    End If
End Sub

merci par avance pour votre aide.

Cordialement.

Fabien.
 
Solution
re
ben voila
VB:
'*********************************************************************************
'                       Collection UserForm Patricktoulon                        *
'                USERFORM REDIMENTIONABLE AVEC LA SOURIS SANS API                *
'                                                                                *
'Auteur:patricktoulon sur Exceldownload                                          *
'version 2.0 sans controls label pilote                                          *
'date version :24/03/2020                                                        *
'l'userform est redimmentionnable par les 4 cotés et les 4 angles                *
'le mouse pointeur vous indique le sens et le type de...

patricktoulon

XLDnaute Barbatruc
un exemple d'utilisation d'api windows au black(sans déclaration)
cet exemple t'ajoute les 2 boutons manquant et l'elasticité
etC EST COMPATIBLE TEL QUEL AVEC 32/64 BITS
VB:
'**********************************************************************************************
'      Ajouter les deux boutons manquants dans la barre de titre  à l'UserForm  et le mouse resizepar les angles et les cotés
'patricktoulon
'**********************************************************************************************

'EXEMPLE
Private Sub UserForm_Activate()
    trois_boutons
End Sub

Private Sub trois_boutons()
    Dim hwnd&
    hwnd = ExecuteExcel4Macro("CALL(""user32"",""GetActiveWindow"",""JCC"")")         'api GetActiveWindow
    ExecuteExcel4Macro ("CALL(""user32"",""SetWindowLongA"",""JJJJJ""," & hwnd & ", " & -16 & ", " & &H94CF0080 & ")")     'api SetWindowLongA
End Sub

te reste plus qu'a adapter le activate et le resize que j'ai déja donné
 

patricktoulon

XLDnaute Barbatruc
oui le mouse resize je l'avais jamais donné; il fait parti de ma collection userform que je comptais distribuer dans une ressource et je l'ai pas fait.... bon ben maintenant il circule
n’hésitez pas a y apporter des modifs améliorantes et partager

j'en ai d'autre avec label aussi et surtout!!!!! toujours sur les quatres angles ;)
l'utilisation de l'un ou de l'autre dépendra des controls que vous aménagez dans vos userforms
en effet si un control se trouve dans chaques angles avec ce model ca ne fonctionnera pas

par contre avec celui ci oui AVEC LES LABELS
je les ai laisser visibles une ligne a bloquer pour qu'il ne le soit pas (voir commentaires)

démonstration
demo4.gif


je le dis plus bonne route ;)
 

Pièces jointes

  • DEMO POUR EXCELDOWNLOAD USERFORM RESIZE LABEL NO API .xlsm
    14.9 KB · Affichages: 20

Discussions similaires

Réponses
29
Affichages
898

Statistiques des forums

Discussions
312 156
Messages
2 085 815
Membres
102 991
dernier inscrit
remyexcel