display in web page format & paging

G

Grrrrrumpy

In an Excel 2003 spreadsheet, I have my layouts in sheet1, my data is input
for these layouts are inputted from sheet2.
The layouts consist of 28-30 rows (this can be changed to fit on a screen).
I want to display on the screen the 30 rows of sheet1.
A laptop will be connected to a big screen TV so it can be viewed in a large
room.
I want to pause a few seconds, page down and display the next 28 or 30
rows, pause, page down...etc.
When I reach the bottom, I want to go to the top and start the display
again. The display should be in "web page format" or "print preview format".
To stop the process, the user press the ESC key.

This has done before. It displays groups of 4 teams in a round robin format
that
is updated during the event. The previous code was limited to 72 teams - 18
screens. It needs to be expanded. The macros were pass protected and are
unaccessible.

How do I do put the worksheet in webpage format and page down thru it?

Thanks
Joe
 
G

Grrrrrumpy

No code can be seen/ modified, it was pass protected. I think I'm being
confusing. I want to display 28 or so rows of screen1 of a spreadsheet,
pause, page down, display the next 28 rows, pause, page down.. etc. I want
code or a macro to do this. When I reached the bottom, say 25 pages, I want
to go to the top and start over. If you do a print preview or a web page
preview of a spreadsheet, you will get an idea of what I want to see on the
screen. I dont want to see the row or column markings on the screen.
 
N

NickHK

It would probably be better to use Application.OnTime rather than .Wait, as
you may run out of stack space if this is running a long time. Also, you
cannot interact with Excel whilst it is running.
CTRL+ALT+BREAK stops the code running and resets to the initial range.

Const SECONDS_DELAY As String = "05"
Const ROWS_JUMP As Long = 25
Const COLUMNS_JUMP As Long = 0

Private Sub CommandButton1_Click()
Call MyGoTo(Range("A1"))
End Sub

Public Function MyGoTo(StartRange As Range) As Long

StartRange.Select

With Application
On Error GoTo Handler
.EnableCancelKey = xlErrorHandler

Do While ActiveCell.Row < UsedRange.Rows.Count
.Wait Now + TimeValue("0:00:" & SECONDS_DELAY)
.Goto ActiveCell.Offset(ROWS_JUMP, COLUMNS_JUMP), True
Loop

End With

Call MyGoTo(Range("A1"))

Exit Function
Handler:
'Code interupted, so reset
StartRange.Select

End Function

NickHK
 
N

NickHK

This version is a bit more stable. As you cannot pass parameters in a call
to .OnTime, use public variables to pass settings:
SHIFT+ESC to halt execution.

'<Standard Module code>
Public StartRange As Range
Public NextRange As Range

Public Const HOURS_DELAY As Long = 0
Public Const MINUTES_DELAY As Long = 0
Public Const SECONDS_DELAY As Long = 2

Public Const ROWS_JUMP As Long = 25
Public Const COLUMNS_JUMP As Long = 0

Public mStopLoop As Boolean

Public Sub MyGoToLoop()

With Application
.Goto NextRange, True

If ActiveCell.Row + ROWS_JUMP < ActiveSheet.UsedRange.Rows.Count Then
Set NextRange = ActiveCell.Offset(ROWS_JUMP, COLUMNS_JUMP)
Else
Set NextRange = StartRange
End If

If mStopLoop = False Then
.OnTime Now + TimeSerial(HOURS_DELAY, MINUTES_DELAY, SECONDS_DELAY),
"MyGoToLoop"
Else
.Goto StartRange, True
.OnKey "+{ESC}", ""
End If
End With

End Sub

Public Function StopLoop()
mStopLoop = True
End Function
'</Standard Module code>

'<WS Copde>
Private Sub CommandButton1_Click()

Set StartRange = Range("A1")
Set NextRange = Range("A1").Offset(ROWS_JUMP, COLUMNS_JUMP)
mStopLoop = False

With Application
.Wait Now + TimeSerial(HOURS_DELAY, MINUTES_DELAY, SECONDS_DELAY)
.OnKey "+{ESC}", "StopLoop"
End With

Call MyGoToLoop

End Sub
'</WS Copde>

NickHK
 
N

NickHK

And depending what you want, it may be better to set the number of rows to
jump to a variable of the value

ActiveWindow.VisibleRange.Rows.Count

NickHK
 
G

Grrrrrumpy

Thank you very much NickHK. I think this will resolve the paging portion.

Now for how the screen display looks. Each page or section of 28 rows
contains graphics, lines, data, etc to be displayed. Our goal is to display
this w/out having it look like a spreadsheet. In other words, have it look
like it does when you do a "Print Preview" or a "Web Page Preview" so you do
not have the rows or columns showing on the screen.
 
N

NickHK

Record a macro whilst you make these changes.
I would guess most are under Tools>Options>View

NickHK
 
G

Grrrrrumpy

Hey NickHK,

I was able to get the first version to work and it looks great, but
like you said, it is a little unstable, difficult to terminate if let to run
for a little while. And in real use, the paging part will be left to run for
extended periods of time.
I was not able to get this later version to run, primarily because it
will not "compile".
You mentioned something about putting the Public constants, etc in a
module. I dont know how to do that, I'm not familiar with the Excel
environment. I set up command buttons for the macros I recorded and they
work. I'm trying to activate this paging code also w/ a Command button, but
when I tried to put this paging code in with the rest of my Command button
code, it blows up. I tried putting the Public constants & variables at the
top, but it still blows up. Where do I put it?
Sorry I'm so clueless.
Joe
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top