ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Clear rows with no data? (https://www.excelbanter.com/excel-programming/392534-clear-rows-no-data.html)

Kai Cunningham[_2_]

Clear rows with no data?
 
I am using VBA code I found on this board to populate a summary sheet with
data from other worksheets in the same workbook. The code is as follows:

Sub SheetList()
For Each ws In Worksheets
i = i + 1
Cells(i, 1) = ws.Name
Next
End Sub

This is working great for what I need it to do, however, when I delete a
worksheet it creates a broken reference for the last row in the set because
my formulas in the rest of the row depend on references to the first cell in
the row to locate the worksheet they are pulling information from (INDIRECT
references for those in the know). Deleting two worksheets results in the
last two rows worth of references being broken, and so on. How can I edit
this code to both generate the list like I want it to, and then delete the
rest of the entries in column "A" to clear the bad references from that row
of information? I am ok with these rows showing a zero, but would be
blissfully happy if someone could point me to some code that will move the
totals line up and down as I add or subtract worksheets to the workbook!
Thanks for your time!
-Kai

Barb Reinhardt

Clear rows with no data?
 
How about
Dim myWS as Worksheet
Dim lRow as long
Dim myRange as range

Set myWS = activesheet

lRow = myWS.cells(rows.count,1).end(xlup).row
set myrange = myWS.cells(1,1).resize(lrow,1)
myrange.clearcontents
set myrange = nothing

'Now run your code

HTH,
Barb Reinhardt

"Kai Cunningham" wrote:

I am using VBA code I found on this board to populate a summary sheet with
data from other worksheets in the same workbook. The code is as follows:

Sub SheetList()
For Each ws In mywb.Worksheets
i = i + 1
Cells(i, 1) = ws.Name
Next
End Sub

This is working great for what I need it to do, however, when I delete a
worksheet it creates a broken reference for the last row in the set because
my formulas in the rest of the row depend on references to the first cell in
the row to locate the worksheet they are pulling information from (INDIRECT
references for those in the know). Deleting two worksheets results in the
last two rows worth of references being broken, and so on. How can I edit
this code to both generate the list like I want it to, and then delete the
rest of the entries in column "A" to clear the bad references from that row
of information? I am ok with these rows showing a zero, but would be
blissfully happy if someone could point me to some code that will move the
totals line up and down as I add or subtract worksheets to the workbook!
Thanks for your time!
-Kai


Kai Cunningham[_2_]

Clear rows with no data?
 
VBA is hitting a compile error when it gets to "Set" of "Set myWS =
activesheet" saying it has an invalid outside procedure error when I try to
compile it. Any ideas?

"Barb Reinhardt" wrote:

How about
Dim myWS as Worksheet
Dim lRow as long
Dim myRange as range

Set myWS = activesheet

lRow = myWS.cells(rows.count,1).end(xlup).row
set myrange = myWS.cells(1,1).resize(lrow,1)
myrange.clearcontents
set myrange = nothing

'Now run your code

HTH,
Barb Reinhardt

"Kai Cunningham" wrote:

I am using VBA code I found on this board to populate a summary sheet with
data from other worksheets in the same workbook. The code is as follows:

Sub SheetList()
For Each ws In mywb.Worksheets
i = i + 1
Cells(i, 1) = ws.Name
Next
End Sub

This is working great for what I need it to do, however, when I delete a
worksheet it creates a broken reference for the last row in the set because
my formulas in the rest of the row depend on references to the first cell in
the row to locate the worksheet they are pulling information from (INDIRECT
references for those in the know). Deleting two worksheets results in the
last two rows worth of references being broken, and so on. How can I edit
this code to both generate the list like I want it to, and then delete the
rest of the entries in column "A" to clear the bad references from that row
of information? I am ok with these rows showing a zero, but would be
blissfully happy if someone could point me to some code that will move the
totals line up and down as I add or subtract worksheets to the workbook!
Thanks for your time!
-Kai


Dave Peterson

Clear rows with no data?
 
Barb just posted the "guts" of the routine.

Option Explicit
Sub YourMacNameHere()

Dim myWS as Worksheet
Dim lRow as long
Dim myRange as range
dim ws as worksheet
dim i as long

Set myWS = activesheet

lRow = myWS.cells(rows.count,1).end(xlup).row
set myrange = myWS.cells(1,1).resize(lrow,1)
myrange.clearcontents
set myrange = nothing

'Then either call your code:
'Call SheetList
'or add it directly he

For Each ws In Worksheets
i = i + 1
myws.Cells(i, 1) = ws.Name
Next ws

End Sub

Kai Cunningham wrote:

VBA is hitting a compile error when it gets to "Set" of "Set myWS =
activesheet" saying it has an invalid outside procedure error when I try to
compile it. Any ideas?

"Barb Reinhardt" wrote:

How about
Dim myWS as Worksheet
Dim lRow as long
Dim myRange as range

Set myWS = activesheet

lRow = myWS.cells(rows.count,1).end(xlup).row
set myrange = myWS.cells(1,1).resize(lrow,1)
myrange.clearcontents
set myrange = nothing

'Now run your code

HTH,
Barb Reinhardt

"Kai Cunningham" wrote:

I am using VBA code I found on this board to populate a summary sheet with
data from other worksheets in the same workbook. The code is as follows:

Sub SheetList()
For Each ws In mywb.Worksheets
i = i + 1
Cells(i, 1) = ws.Name
Next
End Sub

This is working great for what I need it to do, however, when I delete a
worksheet it creates a broken reference for the last row in the set because
my formulas in the rest of the row depend on references to the first cell in
the row to locate the worksheet they are pulling information from (INDIRECT
references for those in the know). Deleting two worksheets results in the
last two rows worth of references being broken, and so on. How can I edit
this code to both generate the list like I want it to, and then delete the
rest of the entries in column "A" to clear the bad references from that row
of information? I am ok with these rows showing a zero, but would be
blissfully happy if someone could point me to some code that will move the
totals line up and down as I add or subtract worksheets to the workbook!
Thanks for your time!
-Kai


--

Dave Peterson

Kai Cunningham[_2_]

Clear rows with no data?
 

Thanks a ton! Newer user here and I'm still not familiar with the
programming aspect, so the step-by-step total process is much appreciated!
-Kai
"Dave Peterson" wrote:

Barb just posted the "guts" of the routine.

Option Explicit
Sub YourMacNameHere()

Dim myWS as Worksheet
Dim lRow as long
Dim myRange as range
dim ws as worksheet
dim i as long

Set myWS = activesheet

lRow = myWS.cells(rows.count,1).end(xlup).row
set myrange = myWS.cells(1,1).resize(lrow,1)
myrange.clearcontents
set myrange = nothing

'Then either call your code:
'Call SheetList
'or add it directly he

For Each ws In Worksheets
i = i + 1
myws.Cells(i, 1) = ws.Name
Next ws

End Sub




All times are GMT +1. The time now is 04:49 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com