ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Making the macro more flexible? (https://www.excelbanter.com/excel-programming/356210-making-macro-more-flexible.html)

mariasa[_20_]

Making the macro more flexible?
 

Hi,

Could you please help me make this code more flexible?

Basically right now it performs the procedure only for the sheet name
943. But i have 66 sheets that i want it to take care of and they ar
listed on sheet 1 of my workbook (they are not consecutive number
however, so the macro has to go to sheet1 and loop through an array o
sheet numbers/names and perform the below functions on them. Hope thi
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 Su

--
marias
-----------------------------------------------------------------------
mariasa's Profile: http://www.excelforum.com/member.php...fo&userid=3172
View this thread: http://www.excelforum.com/showthread.php?threadid=52312


Tom Ogilvy

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



mariasa[_22_]

Making the macro more flexible?
 

Tom, thanks for the suggestion. I tried it out and it gives me th
error, 'invalid use of null' :-(

Does anyone else have any suggestions on how this could work?

Thanks guys!!!

Best,
Mari

--
marias
-----------------------------------------------------------------------
mariasa's Profile: http://www.excelforum.com/member.php...fo&userid=3172
View this thread: http://www.excelforum.com/showthread.php?threadid=52312


Tom Ogilvy

Making the macro more flexible?
 
there was a typo in the code:

change
SheetNumber = rng.Text
to
SheetNumber = cell.Text

sorry you couldn't figure it out :-(
--
Regards,
Tom Ogilvy

"mariasa" wrote in
message ...

Tom, thanks for the suggestion. I tried it out and it gives me the
error, 'invalid use of null' :-(

Does anyone else have any suggestions on how this could work?

Thanks guys!!!

Best,
Maria


--
mariasa
------------------------------------------------------------------------
mariasa's Profile:

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





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

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