VBA-USF: supprimer barre de titre (OK) mais comment deplacer ensuite?!

mimilll

XLDnaute Nouveau
hello,

maintenant que j'ai supprimé la barre de titre bleue de mon userform, je ne peux plus le deplacer!
comment faire pour deplacer mon userform? (clic-deplacer-relacher)

merci!!
 

news

XLDnaute Impliqué
Re : VBA-USF: supprimer barre de titre (OK) mais comment deplacer ensuite?!

Bonjour à tous du forum,

ci-joint fichier explicite,

le code utilisé, voir USF dans VBA (visualiser le code),

news
 

Pièces jointes

  • USF,.xls
    42 KB · Affichages: 321
Dernière édition:

mimilll

XLDnaute Nouveau
Re : VBA-USF: supprimer barre de titre (OK) mais comment deplacer ensuite?!

Bonjour News, boujour le forum,

je ne comprends pas tres bien ce que tu m'as envoyé car la barre de titre est toujours la et je ne peux pas deplacer l'userForm par le corps (en rose dans mon exemple), mais comme d'habitude par la barre de titre...
hihihi !
voici un exemple qui parlera sans doute mieux ;)

merciiiiiiiii
 

Pièces jointes

  • exemple (version 1).xls
    41.5 KB · Affichages: 232
  • exemple (version 1).xls
    41.5 KB · Affichages: 245
  • exemple (version 1).xls
    41.5 KB · Affichages: 264

myDearFriend!

XLDnaute Barbatruc
Re : VBA-USF: supprimer barre de titre (OK) mais comment deplacer ensuite?!

Bonsoir marchal.emilien@free.fr, news, le Forum,

En entête du module de code de ton Userform (au même niveau que tes déclarations de fonction Api), tu ajoutes :
Code:
[COLOR=GRAY][B][I]DANS L'ENTETE DU MODULE DE CODE DU USERFORM[/I][/B][/COLOR]

[COLOR=NAVY]Dim[/COLOR] Xusf [COLOR=NAVY]As Single[/COLOR], Yusf [COLOR=NAVY]As Single[/COLOR]
Ensuite, toujours dans le module de code du Userform, tu ajoutes aussi :
Code:
[COLOR=GRAY][B][I]DANS LE MODULE DE CODE DU USERFORM[/I][/B][/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] UserForm_MouseDown([COLOR=NAVY]ByVal[/COLOR] Button [COLOR=NAVY]As Integer[/COLOR], [COLOR=NAVY]ByVal[/COLOR] Shift [COLOR=NAVY]As Integer[/COLOR], [COLOR=NAVY]ByVal[/COLOR] X [COLOR=NAVY]As Single[/COLOR], [COLOR=NAVY]ByVal[/COLOR] Y [COLOR=NAVY]As Single[/COLOR])
    [COLOR=NAVY]If[/COLOR] Button = 1 [COLOR=NAVY]Then[/COLOR]
        Xusf = X
        Yusf = Y
    [COLOR=NAVY]End If
End Sub[/COLOR]

[COLOR=NAVY]Private Sub[/COLOR] UserForm_MouseMove([COLOR=NAVY]ByVal[/COLOR] Button [COLOR=NAVY]As Integer[/COLOR], [COLOR=NAVY]ByVal[/COLOR] Shift [COLOR=NAVY]As Integer[/COLOR], [COLOR=NAVY]ByVal[/COLOR] X [COLOR=NAVY]As Single[/COLOR], [COLOR=NAVY]ByVal[/COLOR] Y [COLOR=NAVY]As Single[/COLOR])
    [COLOR=NAVY]If[/COLOR] Button = 1 [COLOR=NAVY]Then[/COLOR] Me.Move Me.Left + X - Xusf, Me.Top + Y - Yusf
[COLOR=NAVY]End Sub[/color]

[COLOR=NAVY]Private Sub[/COLOR] UserForm_DblClick([COLOR=NAVY]ByVal[/COLOR] Cancel [COLOR=NAVY]As[/COLOR] MSForms.ReturnBoolean)
    Unload Me       [COLOR=GREEN]'Double-click pour fermer le Usf !!![/COLOR]
[COLOR=NAVY]End Sub[/COLOR]
Cordialement,
 
Dernière édition:

mimilll

XLDnaute Nouveau
Re : VBA-USF: supprimer barre de titre (OK) mais comment deplacer ensuite?!

Ayant lancé un premier SOS avec 3 questions et n'obtenant pas de reponses, j'ai decoupe mon gros PB en sous problemes, dont ce post est le premier.

J'ai obtnenu DEUX codes: HULK + MyDearFriend (Merci encore!)

Voici le comparatif (je ne mets pas le code [que l'on trouve aisémenent] pour supprimer la barre de titre)

HULK
DECLARATION de l'USF:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long

Puis:
Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
ReleaseCapture
SendMessage FindWindow(vbNullString, Me.Caption), &HA1, 2, 0&
End Sub


Voici le code de MydearFriend:
DECLARATION de l'USF:

Dim Xusf As Single, Yusf As Single

Puis:

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
Xusf = X
Yusf = Y
End If
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then Me.Move Me.Left + X - Xusf, Me.Top + Y - Yusf
End Sub

Bonne prog...
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16