View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
joel joel is offline
external usenet poster
 
Posts: 9,101
Default Macro doesn't refresh

I don't know hwat the statement below really means. I go it from the remarks
in Refreshall

Objects that have the BackgroundQuery property set to True are refreshed in
the background.

I think it mean if TRUE then it is refresh in background mode which means it
will wait until the macro stops. Try adding the line DoEvents to the code
which will let the background events to run. Not sure if DoEvents will allow
background events to run. Let me know.

ActiveWorkbook.RefreshAll
DoEvents



"JeffR" wrote:

I have a spreadsheet that I'm trying to wakthrough a list of customers and
print a letter and statement for each.

I have a range named 'RowIndex' which is used by VLOOKUP statements and a MS
SQLQuery to merge some information.

The problem is that it loops through the list just fine but even though I
have auto calc on it doesn't seem to refresh the spreadsheet between loops.

Any ideas?

Code I'm using is below.



Sub PrintForms()
Dim StartRow As Integer
Dim EndRow As Integer
Dim Msg As String
Dim i As Integer

Sheets("PastDueList").Activate
StartRow = Range("StartRow")
EndRow = Range("EndRow")

If StartRow EndRow Then
Msg = "ERROR" & vbCrLf & "The starting row must be less than the
ending row!"
MsgBox Msg, vbCritical, APPNAME
End If

For i = StartRow To EndRow
Range("RowIndex") = i
Worksheets("Letter").Activate
ActiveWorkbook.RefreshAll
ActiveSheet.PrintPreview
Worksheets("Statement").Activate
ActiveSheet.PrintOut
Next i
Worksheets("PastDueList").Activate
Range("RowIndex").Select
End Sub