View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
No Name
 
Posts: n/a
Default Keep Object with Focus on Display Screen

Thanks again, that work like a charm
God bless you
-----Original Message-----
sure, just set ScrollColumn to 1

ActiveWindow.ScrollColumn = 1

Regards,
Tom Ogilvy

"andy" wrote in message
...
Thank you Tom for your reply,

The modified code does do the screen movement I had
requested. However when the screen reacts to the
forward/backward movement adjusting itself to keep the
object on the display screen, it puts the object in the
upper left corner of the display and I can't see any of
the labels to the left. None of the objects are left
alligned.

The code works, however can I just send the screen
position to the leftmost cell of the row the object is
sitting on?

Thank you again for you help
God bless you
-----Original Message-----
Untested, but try something like the below

modifications.

Private Sub cboEnergyType_KeyDown(ByVal KeyCode As
MSForms.ReturnInteger, ByVal Shift As Integer)
Dim rng as Range
Select Case KeyCode
Case vbKeyTab, vbKeyReturn, vbKeyDown, vbKeyUp
Application.ScreenUpdating = False
bBackwards = CBool(Shift And 1) Or

(KeyCode =
vbKeyUp)
If Application.Version < 9 Then

Sheet1.Range
("A1").Select
If bBackwards Then
set rng =

Me.txtStopPayComments.TopLeftCell
if Intersect

(activeWindow.VisibleRange,rng) is nothing then
ActiveWindow.ScrollRow = rng.row
ActiveWindow.ScrollColumn =

rng.column
End if
With Me.txtStopPayComments
.Activate
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
set rng = Me.txtAcctNo.TopLeftCell
if Intersect

(activeWindow.VisibleRange,rng) is nothing then
ActiveWindow.ScrollRow = rng.row
ActiveWindow.ScrollColumn =

rng.column
End if

With Me.txtAcctNo
.Activate
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Application.ScreenUpdating = True
End Select
End Sub

--
Regards,
Tom Ogilvy

"andy" wrote in message
...
I have a page with many objects (textboxes, Option
buttons, comboboxes). There are more objects than can

fit
on the display screen. I have used the code below to

tab,
shift/tab back and forth between objects on the page

Does anyone know how to code to accomplish the

following:

When a field which I have progressivly tabbed into,

is
beyond the display screens view (below), I would like

the
screen to shift down the page so that the object

which I
have tabbed into, which has the focus (e.g.
textbox1.activate) is in my view without me having to
scroll down, or do any extra keystrokes.

Private Sub cboEnergyType_KeyDown(ByVal KeyCode As
MSForms.ReturnInteger, ByVal Shift As Integer)
Select Case KeyCode
Case vbKeyTab, vbKeyReturn, vbKeyDown,

vbKeyUp
Application.ScreenUpdating = False
bBackwards = CBool(Shift And 1) Or

(KeyCode
=
vbKeyUp)
If Application.Version < 9 Then

Sheet1.Range
("A1").Select
If bBackwards Then
With Me.txtStopPayComments
.Activate
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
With Me.txtAcctNo
.Activate
.SelStart = 0
.SelLength = Len(.Text)
End With
End If
Application.ScreenUpdating = True
End Select
End Sub

Thank you in advance
God bless you


.



.