ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Drag picture (https://www.excelbanter.com/excel-programming/405107-drag-picture.html)

[email protected]

Drag picture
 
can anyone tell me how to make the picture box in the excel form be
dragable by using VBA programming?

SteveM

Drag picture
 
On Jan 27, 8:41 pm, wrote:
can anyone tell me how to make the picture box in the excel form be
dragable by using VBA programming?


youu,

I'm not sure you can do that because re-positioning and/or resizing a
form require it to be in edit mode. You could collect Left and Top
positions of the image object from the user to adjust it's position on
the form. But that would be clumsy.

Whenever anyone asks about these more exotic kinds of VBA
functionality, my first question is, "What value are you trying to
provide to the user?" Followed by, "Ts what you are trying to do
value-added from your and the user's perspective? And then step back
and see if you could deliver essentially the same value from an
alternative solution strategy or else try to persuade the customer to
reduce his requirements. (Time is money.)

Good Luck.

SteveM

P.S. to youu and anybody else who reads this thread, google "Occams
Razor". Read a few things about that and take note...

[email protected]

Drag picture
 
On Jan 28, 9:56*am, SteveM wrote:
On Jan 27, 8:41 pm, wrote:

can anyone tell me how to make the picture box in the excel form be
dragable by using VBA programming?


youu,

I'm not sure you can do that because re-positioning and/or resizing a
form require it to be in edit mode. *You could collect Left and Top
positions of the image object from the user to adjust it's position on
the form. *But that would be clumsy.

Whenever anyone asks about these more exotic kinds of VBA
functionality, my first question is, "What value are you trying to
provide to the user?" *Followed by, "Ts what you are trying to do
value-added from your and the user's perspective? *And then step back
and see if you could deliver essentially the same value from an
alternative solution strategy or else try to persuade the customer to
reduce his requirements. *(Time is money.)

Good Luck.

SteveM

P.S. to youu and anybody else who reads this thread, google "Occams
Razor". *Read a few things about that and take note...


thank you very much

Rick Rothstein \(MVP - VB\)

Drag picture
 
can anyone tell me how to make the picture box in the excel
form be dragable by using VBA programming?


You said "picture box", but I am going to assume you meant ImageBox. Place
an ImageBox (leave the default name of Image1) on the form. Copy/paste the
code below my signature into the UserForm's code window, run the project and
press Shift+<LeftMouseButton to drag the ImageBox around the form.

Rick

Private OffsetX As Long, OffsetY As Long
Private Moving As Boolean

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 And Shift = 1 Then
OffsetX = X
OffsetY = Y
Moving = True
End If
End Sub

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Moving Then
With Image1
.Move .Left + X - OffsetX, .Top + Y - OffsetY
End With
End If
End Sub

Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
Moving = False
End Sub


Rick Rothstein \(MVP - VB\)

Drag picture
 
I'm not sure you can do that because re-positioning and/or resizing a
form require it to be in edit mode. You could collect Left and Top
positions of the image object from the user to adjust it's position on
the form. But that would be clumsy.


See my response to the OP for a simple method to do what he asked.

Rick

Jim Cone

Drag picture
 

Rick,
Very nice, I will keep this one even though I may never use it.
--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)




"Rick Rothstein (MVP - VB)"
wrote in message
can anyone tell me how to make the picture box in the excel
form be dragable by using VBA programming?


You said "picture box", but I am going to assume you meant ImageBox. Place
an ImageBox (leave the default name of Image1) on the form. Copy/paste the
code below my signature into the UserForm's code window, run the project and
press Shift+<LeftMouseButton to drag the ImageBox around the form.

Rick

Private OffsetX As Long, OffsetY As Long
Private Moving As Boolean

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 And Shift = 1 Then
OffsetX = X
OffsetY = Y
Moving = True
End If
End Sub

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Moving Then
With Image1
.Move .Left + X - OffsetX, .Top + Y - OffsetY
End With
End If
End Sub

Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
Moving = False
End Sub


Rick Rothstein \(MVP - VB\)

Drag picture
 
Very nice,

Thank you!

I will keep this one even though I may never use it.


LOL

By the way, the procedure I posted is not restricted to ImageBox'es only;
you can use it with any control having those three Mouse events available.
For example, put a ListBox on the UserForm, copy/paste the code I posted
earlier, click Edit/Replace (or key in Ctrl+H) and replace all occurrence of
Image1 with ListBox1. Now, run the project and Shift+LeftMouseClick over the
ListBox and drag it around instead.

Rick


--
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)




"Rick Rothstein (MVP - VB)"
wrote in message
can anyone tell me how to make the picture box in the excel
form be dragable by using VBA programming?


You said "picture box", but I am going to assume you meant ImageBox. Place
an ImageBox (leave the default name of Image1) on the form. Copy/paste the
code below my signature into the UserForm's code window, run the project
and
press Shift+<LeftMouseButton to drag the ImageBox around the form.

Rick

Private OffsetX As Long, OffsetY As Long
Private Moving As Boolean

Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 And Shift = 1 Then
OffsetX = X
OffsetY = Y
Moving = True
End If
End Sub

Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
If Moving Then
With Image1
.Move .Left + X - OffsetX, .Top + Y - OffsetY
End With
End If
End Sub

Private Sub Image1_MouseUp(ByVal Button As Integer, ByVal Shift As _
Integer, ByVal X As Single, ByVal Y As Single)
Moving = False
End Sub



[email protected]

Drag picture
 
Thank you very much! Appreciated that you solved my problem,thank you.


All times are GMT +1. The time now is 02:48 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com