![]() |
can a userform be 'locked' into position
can a userform be 'locked' into position once displayed?
thanks |
can a userform be 'locked' into position
Hi,
Try this, Right click your userform, view code and paste this in. You don't need the message box but it serves to terminate the drag instantly and stops the userform flashing about. Try it without. Option Explicit Private Type position Left As Single Top As Single End Type Private Sub UserForm_Layout() Static Pos As position Dim Moved As Boolean If Pos.Left = 0 Or Pos.Top = 0 Then Pos.Left = Me.Left Pos.Top = Me.Top Exit Sub End If Moved = False If Me.Left < Pos.Left Then Me.Left = Pos.Left Moved = True End If If Me.Top < Pos.Top Then Me.Top = Pos.Top Moved = True End If If Moved = True Then MsgBox "Can't do that" End If End Sub Mike "Anthony" wrote: can a userform be 'locked' into position once displayed? thanks |
can a userform be 'locked' into position
Hi Mike and thanks for help
the inserted code comes back with an error and stops on this line Static Pos As position any ideas? thanks "Mike H" wrote: Hi, Try this, Right click your userform, view code and paste this in. You don't need the message box but it serves to terminate the drag instantly and stops the userform flashing about. Try it without. Option Explicit Private Type position Left As Single Top As Single End Type Private Sub UserForm_Layout() Static Pos As position Dim Moved As Boolean If Pos.Left = 0 Or Pos.Top = 0 Then Pos.Left = Me.Left Pos.Top = Me.Top Exit Sub End If Moved = False If Me.Left < Pos.Left Then Me.Left = Pos.Left Moved = True End If If Me.Top < Pos.Top Then Me.Top = Pos.Top Moved = True End If If Moved = True Then MsgBox "Can't do that" End If End Sub Mike "Anthony" wrote: can a userform be 'locked' into position once displayed? thanks |
can a userform be 'locked' into position
Hi,
Did you paste this bit in? It need all of the code if not it will give a user defined type not defined error Option Explicit Private Type position Left As Single Top As Single End Type Mike "Anthony" wrote: Hi Mike and thanks for help the inserted code comes back with an error and stops on this line Static Pos As position any ideas? thanks "Mike H" wrote: Hi, Try this, Right click your userform, view code and paste this in. You don't need the message box but it serves to terminate the drag instantly and stops the userform flashing about. Try it without. Option Explicit Private Type position Left As Single Top As Single End Type Private Sub UserForm_Layout() Static Pos As position Dim Moved As Boolean If Pos.Left = 0 Or Pos.Top = 0 Then Pos.Left = Me.Left Pos.Top = Me.Top Exit Sub End If Moved = False If Me.Left < Pos.Left Then Me.Left = Pos.Left Moved = True End If If Me.Top < Pos.Top Then Me.Top = Pos.Top Moved = True End If If Moved = True Then MsgBox "Can't do that" End If End Sub Mike "Anthony" wrote: can a userform be 'locked' into position once displayed? thanks |
can a userform be 'locked' into position
Hi Mike,
yep that has locked the userform, however if I drag the scroll bar accross the worksheet the form still moves. I want it locked so that it stays in place - almost locked to a cell range for example. "Mike H" wrote: Hi, Did you paste this bit in? It need all of the code if not it will give a user defined type not defined error Option Explicit Private Type position Left As Single Top As Single End Type Mike "Anthony" wrote: Hi Mike and thanks for help the inserted code comes back with an error and stops on this line Static Pos As position any ideas? thanks "Mike H" wrote: Hi, Try this, Right click your userform, view code and paste this in. You don't need the message box but it serves to terminate the drag instantly and stops the userform flashing about. Try it without. Option Explicit Private Type position Left As Single Top As Single End Type Private Sub UserForm_Layout() Static Pos As position Dim Moved As Boolean If Pos.Left = 0 Or Pos.Top = 0 Then Pos.Left = Me.Left Pos.Top = Me.Top Exit Sub End If Moved = False If Me.Left < Pos.Left Then Me.Left = Pos.Left Moved = True End If If Me.Top < Pos.Top Then Me.Top = Pos.Top Moved = True End If If Moved = True Then MsgBox "Can't do that" End If End Sub Mike "Anthony" wrote: can a userform be 'locked' into position once displayed? thanks |
can a userform be 'locked' into position
Then I hope you get an answer, I don't know how to do that
Mike "Anthony" wrote: Hi Mike, yep that has locked the userform, however if I drag the scroll bar accross the worksheet the form still moves. I want it locked so that it stays in place - almost locked to a cell range for example. "Mike H" wrote: Hi, Did you paste this bit in? It need all of the code if not it will give a user defined type not defined error Option Explicit Private Type position Left As Single Top As Single End Type Mike "Anthony" wrote: Hi Mike and thanks for help the inserted code comes back with an error and stops on this line Static Pos As position any ideas? thanks "Mike H" wrote: Hi, Try this, Right click your userform, view code and paste this in. You don't need the message box but it serves to terminate the drag instantly and stops the userform flashing about. Try it without. Option Explicit Private Type position Left As Single Top As Single End Type Private Sub UserForm_Layout() Static Pos As position Dim Moved As Boolean If Pos.Left = 0 Or Pos.Top = 0 Then Pos.Left = Me.Left Pos.Top = Me.Top Exit Sub End If Moved = False If Me.Left < Pos.Left Then Me.Left = Pos.Left Moved = True End If If Me.Top < Pos.Top Then Me.Top = Pos.Top Moved = True End If If Moved = True Then MsgBox "Can't do that" End If End Sub Mike "Anthony" wrote: can a userform be 'locked' into position once displayed? thanks |
All times are GMT +1. The time now is 04:14 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com