Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default Need Help Making a Macro Repeat Until All Rows Are Processed

Hello.

I have a spreadsheet that contains many records... one record per row.
When I place my cursor in one of the rows, I can invoke a macro that
prints a barcode sheet for the ONE record in that row.

However... now I need to print a barcode sheet for ALL of the records
(and there are hundreds of them). Is there any way to modify the
following macro so that it will print a barcode sheet for ALL of the
records in one batch (instead of my having to manually run the macro
for each row)?

Any help would be greatly appreciated! Thanks,
Jessi


THE MACRO:

Sub PrintBarcode()

'Dimension the variables:
Dim iOffsetValue As Integer

'Get the row number and save to the iOffsetValue variable (you must
subtract one to account for the header row):
iOffsetValue = ActiveWindow.ActiveCell.Row - 1
'Make the barcode sheet visible:
Sheets("BarcodeSheet").Visible = True
'Select the barcode sheet:
Sheets("BarcodeSheet").Select
'Select the offset adjustment cell:
Range("M2").Select
'Place the offset value:
ActiveCell.FormulaR1C1 = iOffsetValue

'Print and hide the barcode sheet:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("BarcodeSheet").Visible = False
'ActiveWindow.SelectedSheets.Visible = False
End Sub

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default Need Help Making a Macro Repeat Until All Rows Are Processed

Thanks for your help, John, but when I modified and ran the macro,
however, I got the following error mesage:
"Run-time Error '1004': Application-defined or object-defined error."

I have reinserted the modified code. Did I do it wrong?

Thanks,
Jessi

Sub PrintBarcode()

'Dimension the variables:
Dim iOffsetValue As Integer

'Get the row number and save to the iOffsetValue variable (you must
subtract one to account for the header row):
iOffsetValue = ActiveWindow.ActiveCell.Row - 1
'Make the barcode sheet visible:
Sheets("BarcodeSheet").Visible = True
Do Until Cells(iOffsetValue, 1) = "" 'place this after you make the
sheet visible unless there are multiple sheets
'Select the barcode sheet:
Sheets("BarcodeSheet").Select
'Select the offset adjustment cell:
Range("M2").Select
'Place the offset value:
ActiveCell.FormulaR1C1 = iOffsetValue

'Print and hide the barcode sheet:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Increment iOffsetValue:
iOffsetValue = iOffsetValue + 1
Loop
Sheets("BarcodeSheet").Visible = False
'ActiveWindow.SelectedSheets.Visible = False
End Sub

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default Need Help Making a Macro Repeat Until All Rows Are Processed

Thank you for your help, John, but it is still printing only the one
record for the row where my cursor is sitting.

I have reinserted the modified code... did I do it wrong?

Thanks,
Jessi

Sub PrintBarcode()

'Dimension the variables:
Dim iOffsetValue As Integer

'Get the row number and save to the iOffsetValue variable (you must
subtract one to account for the header row):
iOffsetValue = ActiveWindow.ActiveCell.Row - 1
'Make the barcode sheet visible:
Sheets("BarcodeSheet").Visible = True

Do Until Cells(iOffsetValue, 1) = "" 'place this after you make the
sheet visible unless there are multiple sheets
'Select the barcode sheet:
Sheets("BarcodeSheet").Select
'Select the offset adjustment cell:
Range("M2").Select
'Place the offset value:
ActiveCell.FormulaR1C1 = iOffsetValue

'Print and hide the barcode sheet:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Increment iOffsetValue:
iOffsetValue = iOffsetValue + 1

Loop

Sheets("BarcodeSheet").Visible = False
'ActiveWindow.SelectedSheets.Visible = False

End Sub

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default Need Help Making a Macro Repeat Until All Rows Are Processed

Thank you for your help, John, but it is still printing only the one
record for the row where my cursor is sitting.

I have reinserted the modified code... did I do it wrong?

Thanks,
Jessi

Sub PrintBarcode()

'Dimension the variables:
Dim iOffsetValue As Integer

'Get the row number and save to the iOffsetValue variable (you must
subtract one to account for the header row):
iOffsetValue = ActiveWindow.ActiveCell.Row - 1
'Make the barcode sheet visible:
Sheets("BarcodeSheet").Visible = True

Do Until Cells(iOffsetValue, 1) = "" 'place this after you make the
sheet visible unless there are multiple sheets
'Select the barcode sheet:
Sheets("BarcodeSheet").Select
'Select the offset adjustment cell:
Range("M2").Select
'Place the offset value:
ActiveCell.FormulaR1C1 = iOffsetValue

'Print and hide the barcode sheet:
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Increment iOffsetValue:
iOffsetValue = iOffsetValue + 1

Loop

Sheets("BarcodeSheet").Visible = False
'ActiveWindow.SelectedSheets.Visible = False

End Sub

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10
Default Need Help Making a Macro Repeat Until All Rows Are Processed

Well... I kept playing with this. I was finally able to make it work
if I inserted the following "selection" commands before the End Loop
command.

.....
'Select cell A1 of the Data worksheet (to restart back to the beginning
of the loop):
Sheets("Data").Select
Range("A1").Select
Loop

I'm not sure why this works... why would you need to select the data
worksheet in order to restart the macro?

Thanks,
Jessi



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 125
Default Need Help Making a Macro Repeat Until All Rows Are Processed

Sorry I couldn't get back to you sooner, I work odd days and hours. I'm glad
you got it to work. The reason it did that is because you switch to the
barcode sheet near the end of the code, when it loops it tries to rund the
macro on the current page which is wrong, you have to go back and select your
original "Data" sheet for it to start the process over, I didn't catch that
when i replied, good job not giving up though! It's hard enough to do this
stuff but even harder when you don't have all of the data to test with.

-John

" wrote:

Well... I kept playing with this. I was finally able to make it work
if I inserted the following "selection" commands before the End Loop
command.

.....
'Select cell A1 of the Data worksheet (to restart back to the beginning
of the loop):
Sheets("Data").Select
Range("A1").Select
Loop

I'm not sure why this works... why would you need to select the data
worksheet in order to restart the macro?

Thanks,
Jessi


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
repeat two rows macro please jwmbem New Users to Excel 3 March 9th 08 04:02 PM
need macro :repeat rows at top jwmbem New Users to Excel 0 March 8th 08 07:33 PM
Display current sheet name being processed in macro Ann New Users to Excel 5 April 17th 07 01:18 PM
repeat macro for all rows Rick Billingsley[_2_] Excel Programming 3 November 16th 05 03:29 PM
Foreign characters aren't processed in a macro Paul hampson Excel Programming 0 August 12th 04 01:43 PM


All times are GMT +1. The time now is 03:22 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"