Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 98
Default Selecting a group of sheet tabs

Hello all,

I am trying to select a group of sheets (sheet tabs) (all sheets are in
?consecutive order? - all in a row, one next to the other) by using sheet
indexes instead of sheet names, then find the next empty cell in a specific
column (on all sheets), then enter a user entered string into that cell on
all sheets. The one possible issue is that every time I use this macro, the
number of sheets I want to select may be different (new sheets may be added,
out-dated sheets may be archived to a different file), so I am trying to
dynamically determine the number of sheets to select and then select them
using "Sheets(array(elements)).select" or "Sheets("Name of Array").select".
Every time I execute one of these lines of code, I get a "Run-time error
'9': Subscript out of range".

To give you some background info on the workbook, it is basically several
driving logs for work. The first sheet is the template that each log is
based off of. The next sheets are the driving logs, one for each week.
After the driving logs, there is a sheet titled "MileageLogTotals" and a
couple miscellaneous sheets after that. The template and the driving logs
are the sheets that I'm trying to select. On all of these sheets, in one
column I have a list of origins/destinations. I am trying to add a new
entry to this list and keep this list identical on all of these sheets.

Following is the code that I have come up with. You may notice that there
are lines of code commented out. Some are just tests to help me see if I am
getting the results I want and some are different ways of trying to do the
same thing. Can anyone help me get this working? What is my problem? Do I
have the wrong syntax for the "Sheets.-------.Select" statements? Is there
a better way of accomplishing this task?

Thank you for any help anyone can provide,

Conan Kelly


Sub SortAndFill()
'
' SortAndFill Macro
' Macro recorded 11/7/2004 by Conan Kelly
'
'
Dim pstrCurrentSheetName As String
Dim pstrSheetName As String
Dim pintIndex As Integer
Dim pintI As Variant
Dim pstrNewEntry As String
Dim pstrTest As String
Dim pintResponse As Integer
pstrTest = ""
'Dim pstrCurrentCell As String

pstrCurrentSheetName = ActiveSheet.Name 'Stores the current
sheetname so it can be set active when macro finishes up
pstrSheetName = "MileageLogTotals"
Worksheets(pstrSheetName).Activate
ActiveSheet.Previous.Select
pintIndex = ActiveSheet.Index

ReDim pintNumberOfSheets(pintIndex) As Integer
For pintI = pintIndex - 1 To 0 Step -1
'For Each pintI In pintNumberOfSheets
pintNumberOfSheets(pintI) = pintI + 1
'pstrTest = pstrTest & "PintNumberOfSheets(" & pintI & ") = " &
pintNumberOfSheets(pintI) & vbCrLf
'pintI = pintI + 1
'ActiveSheet.Previous.Select
Next 'pintI

'MsgBox pstrTest, , "Values"

Sheets(pintNumberOfSheets).Select
'Sheets(Array(pintNumberOfSheets)).Select

pstrNewEntry = InputBox("Please enter a new Origin/Destination.", "New
Entry")
Columns("P:P").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas,
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext,
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Value = pstrNewEntry

Worksheets(pintIndex).Activate

For pintI = pintIndex To 1 Step -1
Columns("P:P").Select
Selection.Sort Key1:=Range("P1"), Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers
Cells.Find(What:="Home - Phoenix", After:=ActiveCell,
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
pstrCurrentCell = ActiveCell.Address(True, True)
Range("l5").Select
ActiveCell.Formula = "=IF(OR(C5=" & pstrCurrentCell & ",D5=" &
pstrCurrentCell & "),22,0)"
Range("l5:l27").FillDown
Range("l27").Select
With ActiveCell.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
End With
Range("A1").Select
If pintI 1 Then
ActiveSheet.Previous.Select
End If
Next
Worksheets(pstrCurrentSheetName).Activate
End Sub


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default Selecting a group of sheet tabs

Sheets(pintNumberOfSheets).Select
'Sheets(Array(pintNumberOfSheets)).Select

should be

Sheets(pintNumberOfSheets).Select

Doesn't mean you won't get an error, but if the array is defined correctly,
it should work

just to demonstrate, this works:

Sub AA()
Dim list() As Integer
ReDim list(0 To 2)
list(0) = 1
list(1) = 2
list(2) = 3
Worksheets(list).Select
End Sub

--
Regards,
Tom Ogilvy

"Conan Kelly" <CTBarbarin at msn dot com wrote in message
...
Hello all,

I am trying to select a group of sheets (sheet tabs) (all sheets are in
?consecutive order? - all in a row, one next to the other) by using sheet
indexes instead of sheet names, then find the next empty cell in a

specific
column (on all sheets), then enter a user entered string into that cell on
all sheets. The one possible issue is that every time I use this macro,

the
number of sheets I want to select may be different (new sheets may be

added,
out-dated sheets may be archived to a different file), so I am trying to
dynamically determine the number of sheets to select and then select them
using "Sheets(array(elements)).select" or "Sheets("Name of

Array").select".
Every time I execute one of these lines of code, I get a "Run-time error
'9': Subscript out of range".

To give you some background info on the workbook, it is basically several
driving logs for work. The first sheet is the template that each log is
based off of. The next sheets are the driving logs, one for each week.
After the driving logs, there is a sheet titled "MileageLogTotals" and a
couple miscellaneous sheets after that. The template and the driving logs
are the sheets that I'm trying to select. On all of these sheets, in one
column I have a list of origins/destinations. I am trying to add a new
entry to this list and keep this list identical on all of these sheets.

Following is the code that I have come up with. You may notice that there
are lines of code commented out. Some are just tests to help me see if I

am
getting the results I want and some are different ways of trying to do the
same thing. Can anyone help me get this working? What is my problem? Do

I
have the wrong syntax for the "Sheets.-------.Select" statements? Is

there
a better way of accomplishing this task?

Thank you for any help anyone can provide,

Conan Kelly


Sub SortAndFill()
'
' SortAndFill Macro
' Macro recorded 11/7/2004 by Conan Kelly
'
'
Dim pstrCurrentSheetName As String
Dim pstrSheetName As String
Dim pintIndex As Integer
Dim pintI As Variant
Dim pstrNewEntry As String
Dim pstrTest As String
Dim pintResponse As Integer
pstrTest = ""
'Dim pstrCurrentCell As String

pstrCurrentSheetName = ActiveSheet.Name 'Stores the current
sheetname so it can be set active when macro finishes up
pstrSheetName = "MileageLogTotals"
Worksheets(pstrSheetName).Activate
ActiveSheet.Previous.Select
pintIndex = ActiveSheet.Index

ReDim pintNumberOfSheets(pintIndex) As Integer
For pintI = pintIndex - 1 To 0 Step -1
'For Each pintI In pintNumberOfSheets
pintNumberOfSheets(pintI) = pintI + 1
'pstrTest = pstrTest & "PintNumberOfSheets(" & pintI & ") = " &
pintNumberOfSheets(pintI) & vbCrLf
'pintI = pintI + 1
'ActiveSheet.Previous.Select
Next 'pintI

'MsgBox pstrTest, , "Values"

Sheets(pintNumberOfSheets).Select
'Sheets(Array(pintNumberOfSheets)).Select

pstrNewEntry = InputBox("Please enter a new Origin/Destination.", "New
Entry")
Columns("P:P").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlFormulas,
LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext,
MatchCase:=False, SearchFormat:=False).Activate
ActiveCell.Value = pstrNewEntry

Worksheets(pintIndex).Activate

For pintI = pintIndex To 1 Step -1
Columns("P:P").Select
Selection.Sort Key1:=Range("P1"), Order1:=xlAscending,
Header:=xlGuess, OrderCustom:=1, MatchCase:=False,
Orientation:=xlTopToBottom, DataOption1:=xlSortTextAsNumbers
Cells.Find(What:="Home - Phoenix", After:=ActiveCell,
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns,
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Activate
pstrCurrentCell = ActiveCell.Address(True, True)
Range("l5").Select
ActiveCell.Formula = "=IF(OR(C5=" & pstrCurrentCell & ",D5=" &
pstrCurrentCell & "),22,0)"
Range("l5:l27").FillDown
Range("l27").Select
With ActiveCell.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThick
End With
Range("A1").Select
If pintI 1 Then
ActiveSheet.Previous.Select
End If
Next
Worksheets(pstrCurrentSheetName).Activate
End Sub




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
I wish to group my worksheets under group tabs Art Excel Worksheet Functions 1 February 4th 10 09:37 PM
Tabs on bottom of sheet are all white in Group Mode. akkrug New Users to Excel 7 September 27th 07 11:35 AM
I wish to group my worksheets under group tabs CSI Excel Worksheet Functions 5 October 19th 06 09:25 PM
selecting multiple sheet tabs and open another workbook Bannor Excel Discussion (Misc queries) 5 November 25th 05 02:38 AM
How do I group worksheets (Lotus 123 function is "Sheet>Group Shee jaking Excel Worksheet Functions 2 August 30th 05 02:09 PM


All times are GMT +1. The time now is 03:56 PM.

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

About Us

"It's about Microsoft Excel"