View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 6,953
Default Making the macro more flexible?

assume the sheet names are listed in A1 to A whatever in sheet1 with no blank
cells in the list (adjust to fit actual situation)

Sub CommandButtonDRG_Click()


Dim i As Long
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date
Dim rng as Range, cell as Range

Dim SheetNumber As String
with Worksheets("Sheet1")
set rng = .Range(.Cells(1,1),.Cells(1,1).End(xldown))
End with

SheetNumber = "943"
for each cell in rng
SheetNumber = rng.Text
sheets(sheetNumber).Activate
startDate = Sheets(SheetNumber).Range("c2").Value
endDate = Sheets(SheetNumber).Range("e2").Value
Sheets(SheetNumber).Columns("C:C").Select
Selection.NumberFormat = "m/d/yyyy"

Sheets(SheetNumber).Range("c2").Select
ActiveCell.FormulaR1C1 = startDate

i = 3
Do
curCell = Sheets(SheetNumber).Cells(i, 3).Select
ActiveCell.FormulaR1C1 = "=dvstradedate(R[-1]C,1)"
i = i + 1
Loop Until Sheets(SheetNumber).Cells(i - 1, 3).Value = endDate
End

Next

End Sub

--
Regards,
Tom Ogilvy



"mariasa" wrote:


Hi,

Could you please help me make this code more flexible?

Basically right now it performs the procedure only for the sheet named
943. But i have 66 sheets that i want it to take care of and they are
listed on sheet 1 of my workbook (they are not consecutive numbers
however, so the macro has to go to sheet1 and loop through an array of
sheet numbers/names and perform the below functions on them. Hope this
doesnt sound too confusing.

Thanks so much.

Regards,
Maria

Sub CommandButtonDRG_Click()


Dim i As Integer
Dim curCell As Date
Dim startDate As Date
Dim endDate As Date

Dim SheetNumber As String

SheetNumber = "943"

startDate = Sheets(SheetNumber).Range("c2").Value
endDate = Sheets(SheetNumber).Range("e2").Value
Sheets(SheetNumber).Columns("C:C").Select
Selection.NumberFormat = "m/d/yyyy"

Sheets(SheetNumber).Range("c2").Select
ActiveCell.FormulaR1C1 = startDate

i = 3
Do
curCell = Sheets(SheetNumber).Cells(i, 3).Select
ActiveCell.FormulaR1C1 = "=dvstradedate(R[-1]C,1)"
i = i + 1
Loop Until Sheets(SheetNumber).Cells(i - 1, 3).Value = endDate
End

End Sub


--
mariasa
------------------------------------------------------------------------
mariasa's Profile: http://www.excelforum.com/member.php...o&userid=31726
View this thread: http://www.excelforum.com/showthread...hreadid=523123