1. Just adjust the macro above to set place it a 90 row spacing first and then move it up or down:
Sub macro_1()
Dim hpb, cur_row, end_count, start_count, 90_count
Sheets("Sheet1").ResetAllPageBreaks
90_count = 0
For Each hpb In Sheets("Sheet1").HPageBreaks
On Error GoTo not_found
cur_row = 90_count + 90
On Error GoTo 0
If Not Range("A" & cur_row).Interior.ColorIndex = xlNone Then
end_count = cur_row
start_count = cur_row
Do Until Range("A" & end_count).Interior.ColorIndex = xlNone
end_count = end_count + 1
Loop
Do Until Range("A" & start_count).Interior.ColorIndex = xlNone
start_count = start_count - 1
Loop
If end_count - cur_row < cur_row - start_count Then
Set hpb.Location = Sheets("Sheet1").Range("A" & end_count + 1)
90_count = end_count+1
Else
Set hpb.Location = Sheets("Sheet1").Range("A" & start_count + 1)
90_count = start_count+1
End If
End If
Next
Exit Sub
not_found:
End Sub
2. Easiest thing to do would be to just a header or footer to display total number of pages. I don't think there is a formula that will return page numbers to put it into a cell so if you really need it in A2 you would need a formula to work out how many pages you had. (i.e. find last row and divide by 90 or something)
3. I don't understand what you mean by this - there is a zoom level in the page setup which you can set automatically but if you are manually adding and setting pagebreaks this will kind of be overwritten. You can set the print area automatically using a macro which might be what you mean? In the example you had it was just a single column which will always look a little strange when printed. You could try changing the width of the column whilst printing I guess.
Bookmarks