ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Using Sheet names & Workbook names in VBA coding (https://www.excelbanter.com/excel-programming/366586-using-sheet-names-workbook-names-vba-coding.html)

Colin Foster[_5_] July 7th 06 04:21 PM

Using Sheet names & Workbook names in VBA coding
 
Hi,
I've got a macro working (thanks to help from this NG) to delete certain
specified rows of data from a spreadsheet. Unfortunately, I have to go into
the VBA code to change th esheet name from "Sheet1" to the actual name of
the sheet. As I want to be able to use this code on more than one sheet (&
possibly across workbooks) is there a simple line of code that I can put
into the VBA to automatically put in th ecorrect sheet name & file name?

Regards
Colin Foster



Chip Pearson July 7th 06 04:35 PM

Using Sheet names & Workbook names in VBA coding
 
Instead of writing code like

Worksheets("Sheet1").Rows(1).Delete

you can have to macro refer to whatever sheet is active in Excel.

ActiveSheet.Rows(1).Delete

If you want this to work on all worksheets at one time, use

Dim WS As Worksheet
For Each WS In Worksheets
WS.Rows(1).Delete
Next WS




--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Colin Foster" wrote in message
...
Hi,
I've got a macro working (thanks to help from this NG) to
delete certain specified rows of data from a spreadsheet.
Unfortunately, I have to go into the VBA code to change th
esheet name from "Sheet1" to the actual name of the sheet. As I
want to be able to use this code on more than one sheet (&
possibly across workbooks) is there a simple line of code that
I can put into the VBA to automatically put in th ecorrect
sheet name & file name?

Regards
Colin Foster




Colin Foster[_5_] July 7th 06 05:07 PM

Using Sheet names & Workbook names in VBA coding
 
Hi Chip,

Thanks for this.

The code (as it stands at the moment) is...

Public Sub SelectiveDelete()
Dim LRowData As Long, ir As Long


With Sheets("Sheet1")
' detect last row of data in column A
LRowData = .Cells(Rows.Count, "A").End(xlUp).Row


' scan list testing if the value is in range
For ir = LRowData To 1 Step -1
If Trim(.Cells(ir, 1).Value) = "A/C NO" Or _
Trim(.Cells(ir, 1).Value) = "Report Total" Or _
Trim(.Cells(ir, 1).Value) = " Evolut" Or _
Trim(.Cells(ir, 1).Value) = "Evoluti" Or _
Trim(.Cells(ir, 1).Value) = "-------" Or _
InStr(1, Trim(.Cells(ir, 2).Value), "@") 0 Or _
Len(Trim(.Cells(ir, 2).Value)) = 0 _
Then .Rows(ir).Delete Shift:=xlUp
Next ir
End With
End Sub

So where would I put your code? Or, due to the coding that I'm using, do I
need it worded differently?

Thanks, again, for your interest.

regards
Colin


"Chip Pearson" wrote in message
...
Instead of writing code like

Worksheets("Sheet1").Rows(1).Delete

you can have to macro refer to whatever sheet is active in Excel.

ActiveSheet.Rows(1).Delete

If you want this to work on all worksheets at one time, use

Dim WS As Worksheet
For Each WS In Worksheets
WS.Rows(1).Delete
Next WS




--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Colin Foster" wrote in message
...
Hi,
I've got a macro working (thanks to help from this NG) to delete certain
specified rows of data from a spreadsheet. Unfortunately, I have to go
into the VBA code to change th esheet name from "Sheet1" to the actual
name of the sheet. As I want to be able to use this code on more than one
sheet (& possibly across workbooks) is there a simple line of code that I
can put into the VBA to automatically put in th ecorrect sheet name &
file name?

Regards
Colin Foster






Dave Peterson July 7th 06 05:19 PM

Using Sheet names & Workbook names in VBA coding
 
If you're running the code against the activesheet, you could just change:

With Sheets("Sheet1")
to
With Activesheet



Colin Foster wrote:

Hi Chip,

Thanks for this.

The code (as it stands at the moment) is...

Public Sub SelectiveDelete()
Dim LRowData As Long, ir As Long

With Sheets("Sheet1")
' detect last row of data in column A
LRowData = .Cells(Rows.Count, "A").End(xlUp).Row

' scan list testing if the value is in range
For ir = LRowData To 1 Step -1
If Trim(.Cells(ir, 1).Value) = "A/C NO" Or _
Trim(.Cells(ir, 1).Value) = "Report Total" Or _
Trim(.Cells(ir, 1).Value) = "Evolut" Or _
Trim(.Cells(ir, 1).Value) = "Evoluti" Or _
Trim(.Cells(ir, 1).Value) = "-------" Or _
InStr(1, Trim(.Cells(ir, 2).Value), "@") 0 Or _
Len(Trim(.Cells(ir, 2).Value)) = 0 _
Then .Rows(ir).Delete Shift:=xlUp
Next ir
End With
End Sub

So where would I put your code? Or, due to the coding that I'm using, do I
need it worded differently?

Thanks, again, for your interest.

regards
Colin

"Chip Pearson" wrote in message
...
Instead of writing code like

Worksheets("Sheet1").Rows(1).Delete

you can have to macro refer to whatever sheet is active in Excel.

ActiveSheet.Rows(1).Delete

If you want this to work on all worksheets at one time, use

Dim WS As Worksheet
For Each WS In Worksheets
WS.Rows(1).Delete
Next WS




--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Colin Foster" wrote in message
...
Hi,
I've got a macro working (thanks to help from this NG) to delete certain
specified rows of data from a spreadsheet. Unfortunately, I have to go
into the VBA code to change th esheet name from "Sheet1" to the actual
name of the sheet. As I want to be able to use this code on more than one
sheet (& possibly across workbooks) is there a simple line of code that I
can put into the VBA to automatically put in th ecorrect sheet name &
file name?

Regards
Colin Foster




--

Dave Peterson

Colin Foster[_5_] July 7th 06 05:49 PM

Using Sheet names & Workbook names in VBA coding
 
Hi Dave,

I suppose at this point, I should turn yellow, open a can of Duff Beer &
utter those famous words... "Doh!!"

But then, I suppose,if you use VBA regularly, you'd know this... I don't
which is why I'm really grateful for th ehelp on this & other NG's

Regards
Colin


"Dave Peterson" wrote in message
...
If you're running the code against the activesheet, you could just change:

With Sheets("Sheet1")
to
With Activesheet



Colin Foster wrote:

Hi Chip,

Thanks for this.

The code (as it stands at the moment) is...

Public Sub SelectiveDelete()
Dim LRowData As Long, ir As Long

With Sheets("Sheet1")
' detect last row of data in column A
LRowData = .Cells(Rows.Count, "A").End(xlUp).Row

' scan list testing if the value is in range
For ir = LRowData To 1 Step -1
If Trim(.Cells(ir, 1).Value) = "A/C NO" Or _
Trim(.Cells(ir, 1).Value) = "Report Total" Or _
Trim(.Cells(ir, 1).Value) = "Evolut" Or _
Trim(.Cells(ir, 1).Value) = "Evoluti" Or _
Trim(.Cells(ir, 1).Value) = "-------" Or _
InStr(1, Trim(.Cells(ir, 2).Value), "@") 0 Or _
Len(Trim(.Cells(ir, 2).Value)) = 0 _
Then .Rows(ir).Delete Shift:=xlUp
Next ir
End With
End Sub

So where would I put your code? Or, due to the coding that I'm using, do
I
need it worded differently?

Thanks, again, for your interest.

regards
Colin

"Chip Pearson" wrote in message
...
Instead of writing code like

Worksheets("Sheet1").Rows(1).Delete

you can have to macro refer to whatever sheet is active in Excel.

ActiveSheet.Rows(1).Delete

If you want this to work on all worksheets at one time, use

Dim WS As Worksheet
For Each WS In Worksheets
WS.Rows(1).Delete
Next WS




--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Colin Foster" wrote in message
...
Hi,
I've got a macro working (thanks to help from this NG) to delete
certain
specified rows of data from a spreadsheet. Unfortunately, I have to go
into the VBA code to change th esheet name from "Sheet1" to the actual
name of the sheet. As I want to be able to use this code on more than
one
sheet (& possibly across workbooks) is there a simple line of code
that I
can put into the VBA to automatically put in th ecorrect sheet name &
file name?

Regards
Colin Foster




--

Dave Peterson




Dave Peterson July 7th 06 07:04 PM

Using Sheet names & Workbook names in VBA coding
 
Sometimes, just an extra pair (or an extra few pair) of eyes is all it takes to
get to the next problem, er, challenge.

Colin Foster wrote:

Hi Dave,

I suppose at this point, I should turn yellow, open a can of Duff Beer &
utter those famous words... "Doh!!"

But then, I suppose,if you use VBA regularly, you'd know this... I don't
which is why I'm really grateful for th ehelp on this & other NG's

Regards
Colin

"Dave Peterson" wrote in message
...
If you're running the code against the activesheet, you could just change:

With Sheets("Sheet1")
to
With Activesheet



Colin Foster wrote:

Hi Chip,

Thanks for this.

The code (as it stands at the moment) is...

Public Sub SelectiveDelete()
Dim LRowData As Long, ir As Long

With Sheets("Sheet1")
' detect last row of data in column A
LRowData = .Cells(Rows.Count, "A").End(xlUp).Row

' scan list testing if the value is in range
For ir = LRowData To 1 Step -1
If Trim(.Cells(ir, 1).Value) = "A/C NO" Or _
Trim(.Cells(ir, 1).Value) = "Report Total" Or _
Trim(.Cells(ir, 1).Value) = "Evolut" Or _
Trim(.Cells(ir, 1).Value) = "Evoluti" Or _
Trim(.Cells(ir, 1).Value) = "-------" Or _
InStr(1, Trim(.Cells(ir, 2).Value), "@") 0 Or _
Len(Trim(.Cells(ir, 2).Value)) = 0 _
Then .Rows(ir).Delete Shift:=xlUp
Next ir
End With
End Sub

So where would I put your code? Or, due to the coding that I'm using, do
I
need it worded differently?

Thanks, again, for your interest.

regards
Colin

"Chip Pearson" wrote in message
...
Instead of writing code like

Worksheets("Sheet1").Rows(1).Delete

you can have to macro refer to whatever sheet is active in Excel.

ActiveSheet.Rows(1).Delete

If you want this to work on all worksheets at one time, use

Dim WS As Worksheet
For Each WS In Worksheets
WS.Rows(1).Delete
Next WS




--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"Colin Foster" wrote in message
...
Hi,
I've got a macro working (thanks to help from this NG) to delete
certain
specified rows of data from a spreadsheet. Unfortunately, I have to go
into the VBA code to change th esheet name from "Sheet1" to the actual
name of the sheet. As I want to be able to use this code on more than
one
sheet (& possibly across workbooks) is there a simple line of code
that I
can put into the VBA to automatically put in th ecorrect sheet name &
file name?

Regards
Colin Foster




--

Dave Peterson


--

Dave Peterson


All times are GMT +1. The time now is 07:50 PM.

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