ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Hoping a guru can help this novice out with a simple macro (https://www.excelbanter.com/excel-programming/292292-hoping-guru-can-help-novice-out-simple-macro.html)

slim[_2_]

Hoping a guru can help this novice out with a simple macro
 
Hi everyone. I'm new VBA and have very minimal knowledge of most VBA
commands, however, I can understand how simple macros work by reading them.
I'm hoping that someone here can help me out with a macro I'm attempting to
write.

The macro is for a monthly financial report. The spreadsheet consists of
two worksheets. The first worksheet is the report, and second is a list
numbers (departments). What I would like the macro to do is:

1. Take the first cell of the list of department numbers from the second
sheet (ie. contents of cell A1) and copy it into a cell on sheet 1 (ie. cell
B5).

2. Perform a manual calculation (what would happen after pressing the F9
key). This step is actually the easy one that I can figure out.

3. Supress all rows that have a balance of 0. For example, if all dollar
amounts on a row add up to 0, this row would be hidden.

4. Save the file with the filename of the department number.

5. Unsupress rows from step #3.

6. Repeat this entrie process for all departments, so it would go back to
sheet #2, and advance to the second number on the list...and continue until
it gets to the end of the list.


I would be very greatful if someone could shed some light on this task.
Even if someone could tell me the basic methods for these steps, I could
work with that and research those methods.

Thanks in advance for any help.



Tushar Mehta

Hoping a guru can help this novice out with a simple macro
 
You can create the basic code to do the work for one department. To do
so turn on the macro recorder (Tools | Macro Record new macro...),
execute the steps you've outlined, and turn off the macro recorder.
Now, switch to the VBE and you will find that XL has generated the
necessary code.

Share that code in a follow up message in this discussion and someone
should be able to show you how to generalize it to multiple
departments. Please post that code as text in the message and not as
an attachment.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article , ezrathedog@hot-
nospam-mail.com says...
Hi everyone. I'm new VBA and have very minimal knowledge of most VBA
commands, however, I can understand how simple macros work by reading them.
I'm hoping that someone here can help me out with a macro I'm attempting to
write.

The macro is for a monthly financial report. The spreadsheet consists of
two worksheets. The first worksheet is the report, and second is a list
numbers (departments). What I would like the macro to do is:

1. Take the first cell of the list of department numbers from the second
sheet (ie. contents of cell A1) and copy it into a cell on sheet 1 (ie. cell
B5).

2. Perform a manual calculation (what would happen after pressing the F9
key). This step is actually the easy one that I can figure out.

3. Supress all rows that have a balance of 0. For example, if all dollar
amounts on a row add up to 0, this row would be hidden.

4. Save the file with the filename of the department number.

5. Unsupress rows from step #3.

6. Repeat this entrie process for all departments, so it would go back to
sheet #2, and advance to the second number on the list...and continue until
it gets to the end of the list.


I would be very greatful if someone could shed some light on this task.
Even if someone could tell me the basic methods for these steps, I could
work with that and research those methods.

Thanks in advance for any help.




slim[_2_]

Hoping a guru can help this novice out with a simple macro
 
Thanks for the reply. I don't have much yet...but here is what I have,
which is obviously pretty much nothing.

Sub Macro1()

Sheets("Cost Centers").Select
Range("A1").Select
Selection.Copy
Sheets("Template").Select
Range("B5").Select
ActiveSheet.Paste
Application.Run "TM1RECALC"
ChDir "C:\TestReports\"
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\TestReport.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


Here are the things I need to do:

1. I need to add some type of step after the Application.Run "TM1RECALC"
line that will have the macro hide certain lines. I have no idea how to do
this. If the sum of all the dollar amounts in the line = 0, then the line
should be hidden. This step is going to need to reverse itself after the
save part.

2. I need the macro to loop so it goes through all the steps with each
department number until it reaches the end of the list. For example, on the
second loop, instead of copying the contents of cell A1, it would advance to
A2, up until it gets to the end of the list.

3. I would like the macros to save each time with a different filename. The
filename will be the department number (cell B5).

Thanks again for any help.



"Tushar Mehta" wrote in message
news:MPG.1aa419223d3f539198970c@news-server...
You can create the basic code to do the work for one department. To do
so turn on the macro recorder (Tools | Macro Record new macro...),
execute the steps you've outlined, and turn off the macro recorder.
Now, switch to the VBE and you will find that XL has generated the
necessary code.

Share that code in a follow up message in this discussion and someone
should be able to show you how to generalize it to multiple
departments. Please post that code as text in the message and not as
an attachment.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article , ezrathedog@hot-
nospam-mail.com says...
Hi everyone. I'm new VBA and have very minimal knowledge of most VBA
commands, however, I can understand how simple macros work by reading

them.
I'm hoping that someone here can help me out with a macro I'm attempting

to
write.

The macro is for a monthly financial report. The spreadsheet consists

of
two worksheets. The first worksheet is the report, and second is a list
numbers (departments). What I would like the macro to do is:

1. Take the first cell of the list of department numbers from the second
sheet (ie. contents of cell A1) and copy it into a cell on sheet 1 (ie.

cell
B5).

2. Perform a manual calculation (what would happen after pressing the F9
key). This step is actually the easy one that I can figure out.

3. Supress all rows that have a balance of 0. For example, if all

dollar
amounts on a row add up to 0, this row would be hidden.

4. Save the file with the filename of the department number.

5. Unsupress rows from step #3.

6. Repeat this entrie process for all departments, so it would go back

to
sheet #2, and advance to the second number on the list...and continue

until
it gets to the end of the list.


I would be very greatful if someone could shed some light on this task.
Even if someone could tell me the basic methods for these steps, I could
work with that and research those methods.

Thanks in advance for any help.






Tom Ogilvy

Hoping a guru can help this novice out with a simple macro
 
Change A7 to indicate where the data starts in Sheet Template.

Sub Macro1()
Dim sName as String
Dim cell as Range, cell1 as Range
Dim rng as Range, rng1 as Range
Dim sh as Worksheet
Sname = ActiveWorkbook.FullName
ChDir "C:\TestReports\"
With Sheets("Cost Centers")
set rng = .Range(.Cells(1,1),Cells(1,1).End(xldown))
End with
set sh = Worksheets("Template")
With sh
set rng1 = .Range(.Range("A7"),.Range("A7").End(xldown))
End with
for each cell in rng
sh.Rows.Hidden = False
rng1.Parent.range("B5").Value = cell.value
Application.Run "TM1RECALC"
for each cell1 in rng1
if application.Sum(cell1.Entirerow) = 0 then
cell1.EntireRow.Hidden = True
End if
Next
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\" & cell.Value & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Next
' optional if appropriate
Activeworkbook.SaveAs Filename:=sName, FileFormat:=xlWorkbookNormal
End Sub

Should be a start. Test it on a copy of your workbook.

--
Regards,
Tom Ogilvy

"slim" wrote in message
...
Thanks for the reply. I don't have much yet...but here is what I have,
which is obviously pretty much nothing.

Sub Macro1()

Sheets("Cost Centers").Select
Range("A1").Select
Selection.Copy
Sheets("Template").Select
Range("B5").Select
ActiveSheet.Paste
Application.Run "TM1RECALC"
ChDir "C:\TestReports\"
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\TestReport.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


Here are the things I need to do:

1. I need to add some type of step after the Application.Run "TM1RECALC"
line that will have the macro hide certain lines. I have no idea how to

do
this. If the sum of all the dollar amounts in the line = 0, then the line
should be hidden. This step is going to need to reverse itself after the
save part.

2. I need the macro to loop so it goes through all the steps with each
department number until it reaches the end of the list. For example, on

the
second loop, instead of copying the contents of cell A1, it would advance

to
A2, up until it gets to the end of the list.

3. I would like the macros to save each time with a different filename.

The
filename will be the department number (cell B5).

Thanks again for any help.



"Tushar Mehta" wrote in message
news:MPG.1aa419223d3f539198970c@news-server...
You can create the basic code to do the work for one department. To do
so turn on the macro recorder (Tools | Macro Record new macro...),
execute the steps you've outlined, and turn off the macro recorder.
Now, switch to the VBE and you will find that XL has generated the
necessary code.

Share that code in a follow up message in this discussion and someone
should be able to show you how to generalize it to multiple
departments. Please post that code as text in the message and not as
an attachment.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article , ezrathedog@hot-
nospam-mail.com says...
Hi everyone. I'm new VBA and have very minimal knowledge of most VBA
commands, however, I can understand how simple macros work by reading

them.
I'm hoping that someone here can help me out with a macro I'm

attempting
to
write.

The macro is for a monthly financial report. The spreadsheet consists

of
two worksheets. The first worksheet is the report, and second is a

list
numbers (departments). What I would like the macro to do is:

1. Take the first cell of the list of department numbers from the

second
sheet (ie. contents of cell A1) and copy it into a cell on sheet 1

(ie.
cell
B5).

2. Perform a manual calculation (what would happen after pressing the

F9
key). This step is actually the easy one that I can figure out.

3. Supress all rows that have a balance of 0. For example, if all

dollar
amounts on a row add up to 0, this row would be hidden.

4. Save the file with the filename of the department number.

5. Unsupress rows from step #3.

6. Repeat this entrie process for all departments, so it would go back

to
sheet #2, and advance to the second number on the list...and continue

until
it gets to the end of the list.


I would be very greatful if someone could shed some light on this

task.
Even if someone could tell me the basic methods for these steps, I

could
work with that and research those methods.

Thanks in advance for any help.








slim[_2_]

Hoping a guru can help this novice out with a simple macro
 
Tom, Thanks for helping me out, I greatly appreciate it.

A couple of things that I need to work on, a few that I haven't mentioned
before that I just realized.

1. It appears to be hiding too many rows. The template is setup with Data
potentially in Columns A-I.
The macro is hiding several rows even if there is dollar amounts that do not
add to 0. Could this be due to all formulas being in the cells?

Also, there are two other circumstances in which I would not want the rows
to be hidden...if it is a seperator (blank line on purpose), or if it is a
heading row, a row that has a main heading with no dollar amounts next to
them. Is there some way I can designate certain rows to not be deleted?
Mabye if I was to put hidden data on some blanks cells?

2. Instead of saving the entire workbook everytime if goes through the loop,
can I change it to save only the Template sheet?

Thanks again for your help.


"Tom Ogilvy" wrote in message
...
Change A7 to indicate where the data starts in Sheet Template.

Sub Macro1()
Dim sName as String
Dim cell as Range, cell1 as Range
Dim rng as Range, rng1 as Range
Dim sh as Worksheet
Sname = ActiveWorkbook.FullName
ChDir "C:\TestReports\"
With Sheets("Cost Centers")
set rng = .Range(.Cells(1,1),Cells(1,1).End(xldown))
End with
set sh = Worksheets("Template")
With sh
set rng1 = .Range(.Range("A7"),.Range("A7").End(xldown))
End with
for each cell in rng
sh.Rows.Hidden = False
rng1.Parent.range("B5").Value = cell.value
Application.Run "TM1RECALC"
for each cell1 in rng1
if application.Sum(cell1.Entirerow) = 0 then
cell1.EntireRow.Hidden = True
End if
Next
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\" & cell.Value & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Next
' optional if appropriate
Activeworkbook.SaveAs Filename:=sName, FileFormat:=xlWorkbookNormal
End Sub

Should be a start. Test it on a copy of your workbook.

--
Regards,
Tom Ogilvy

"slim" wrote in message
...
Thanks for the reply. I don't have much yet...but here is what I have,
which is obviously pretty much nothing.

Sub Macro1()

Sheets("Cost Centers").Select
Range("A1").Select
Selection.Copy
Sheets("Template").Select
Range("B5").Select
ActiveSheet.Paste
Application.Run "TM1RECALC"
ChDir "C:\TestReports\"
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\TestReport.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


Here are the things I need to do:

1. I need to add some type of step after the Application.Run "TM1RECALC"
line that will have the macro hide certain lines. I have no idea how to

do
this. If the sum of all the dollar amounts in the line = 0, then the

line
should be hidden. This step is going to need to reverse itself after

the
save part.

2. I need the macro to loop so it goes through all the steps with each
department number until it reaches the end of the list. For example, on

the
second loop, instead of copying the contents of cell A1, it would

advance
to
A2, up until it gets to the end of the list.

3. I would like the macros to save each time with a different filename.

The
filename will be the department number (cell B5).

Thanks again for any help.



"Tushar Mehta" wrote in

message
news:MPG.1aa419223d3f539198970c@news-server...
You can create the basic code to do the work for one department. To

do
so turn on the macro recorder (Tools | Macro Record new macro...),
execute the steps you've outlined, and turn off the macro recorder.
Now, switch to the VBE and you will find that XL has generated the
necessary code.

Share that code in a follow up message in this discussion and someone
should be able to show you how to generalize it to multiple
departments. Please post that code as text in the message and not as
an attachment.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article , ezrathedog@hot-
nospam-mail.com says...
Hi everyone. I'm new VBA and have very minimal knowledge of most

VBA
commands, however, I can understand how simple macros work by

reading
them.
I'm hoping that someone here can help me out with a macro I'm

attempting
to
write.

The macro is for a monthly financial report. The spreadsheet

consists
of
two worksheets. The first worksheet is the report, and second is a

list
numbers (departments). What I would like the macro to do is:

1. Take the first cell of the list of department numbers from the

second
sheet (ie. contents of cell A1) and copy it into a cell on sheet 1

(ie.
cell
B5).

2. Perform a manual calculation (what would happen after pressing

the
F9
key). This step is actually the easy one that I can figure out.

3. Supress all rows that have a balance of 0. For example, if all

dollar
amounts on a row add up to 0, this row would be hidden.

4. Save the file with the filename of the department number.

5. Unsupress rows from step #3.

6. Repeat this entrie process for all departments, so it would go

back
to
sheet #2, and advance to the second number on the list...and

continue
until
it gets to the end of the list.


I would be very greatful if someone could shed some light on this

task.
Even if someone could tell me the basic methods for these steps, I

could
work with that and research those methods.

Thanks in advance for any help.










Tom Ogilvy

Hoping a guru can help this novice out with a simple macro
 
Sub Macro1()
Dim sName as String
Dim cell as Range, cell1 as Range
Dim rng as Range, rng1 as Range
Dim rng3 as Range
Dim sh as Worksheet
Sname = ActiveWorkbook.FullName
ChDir "C:\TestReports\"
With Sheets("Cost Centers")
set rng = .Range(.Cells(1,1),Cells(1,1).End(xldown))
End with
set sh = Worksheets("Template")
With sh
set rng1 = .Range(.Range("A7"),.Range("A7").End(xldown))
End with
for each cell in rng
sh.Rows.Hidden = False
rng1.Parent.range("B5").Value = cell.value
Application.Run "TM1RECALC"
for each cell1 in rng1
set rng3 = range(cells(cell1.row,1),cells(cell1.row,9))
if application.Sum(rng3) = 0 and _
application.count(rng3)0 then
cell1.EntireRow.Hidden = True
End if
Next
Activesheet.Copy
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\" & cell.Value & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=False
Next
' optional if appropriate
Activeworkbook.SaveAs Filename:=sName, FileFormat:=xlWorkbookNormal
End Sub

--
Regards,
Tom Ogilvy


"slim" wrote in message
...
Tom, Thanks for helping me out, I greatly appreciate it.

A couple of things that I need to work on, a few that I haven't mentioned
before that I just realized.

1. It appears to be hiding too many rows. The template is setup with Data
potentially in Columns A-I.
The macro is hiding several rows even if there is dollar amounts that do

not
add to 0. Could this be due to all formulas being in the cells?

Also, there are two other circumstances in which I would not want the rows
to be hidden...if it is a seperator (blank line on purpose), or if it is a
heading row, a row that has a main heading with no dollar amounts next to
them. Is there some way I can designate certain rows to not be deleted?
Mabye if I was to put hidden data on some blanks cells?

2. Instead of saving the entire workbook everytime if goes through the

loop,
can I change it to save only the Template sheet?

Thanks again for your help.


"Tom Ogilvy" wrote in message
...
Change A7 to indicate where the data starts in Sheet Template.

Sub Macro1()
Dim sName as String
Dim cell as Range, cell1 as Range
Dim rng as Range, rng1 as Range
Dim sh as Worksheet
Sname = ActiveWorkbook.FullName
ChDir "C:\TestReports\"
With Sheets("Cost Centers")
set rng = .Range(.Cells(1,1),Cells(1,1).End(xldown))
End with
set sh = Worksheets("Template")
With sh
set rng1 = .Range(.Range("A7"),.Range("A7").End(xldown))
End with
for each cell in rng
sh.Rows.Hidden = False
rng1.Parent.range("B5").Value = cell.value
Application.Run "TM1RECALC"
for each cell1 in rng1
if application.Sum(cell1.Entirerow) = 0 then
cell1.EntireRow.Hidden = True
End if
Next
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\" & cell.Value & ".xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
Next
' optional if appropriate
Activeworkbook.SaveAs Filename:=sName, FileFormat:=xlWorkbookNormal
End Sub

Should be a start. Test it on a copy of your workbook.

--
Regards,
Tom Ogilvy

"slim" wrote in message
...
Thanks for the reply. I don't have much yet...but here is what I

have,
which is obviously pretty much nothing.

Sub Macro1()

Sheets("Cost Centers").Select
Range("A1").Select
Selection.Copy
Sheets("Template").Select
Range("B5").Select
ActiveSheet.Paste
Application.Run "TM1RECALC"
ChDir "C:\TestReports\"
ActiveWorkbook.SaveAs Filename:= _
"C:\TestReports\TestReport.xls", _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
End Sub


Here are the things I need to do:

1. I need to add some type of step after the Application.Run

"TM1RECALC"
line that will have the macro hide certain lines. I have no idea how

to
do
this. If the sum of all the dollar amounts in the line = 0, then the

line
should be hidden. This step is going to need to reverse itself after

the
save part.

2. I need the macro to loop so it goes through all the steps with each
department number until it reaches the end of the list. For example,

on
the
second loop, instead of copying the contents of cell A1, it would

advance
to
A2, up until it gets to the end of the list.

3. I would like the macros to save each time with a different

filename.
The
filename will be the department number (cell B5).

Thanks again for any help.



"Tushar Mehta" wrote in

message
news:MPG.1aa419223d3f539198970c@news-server...
You can create the basic code to do the work for one department. To

do
so turn on the macro recorder (Tools | Macro Record new macro...),
execute the steps you've outlined, and turn off the macro recorder.
Now, switch to the VBE and you will find that XL has generated the
necessary code.

Share that code in a follow up message in this discussion and

someone
should be able to show you how to generalize it to multiple
departments. Please post that code as text in the message and not

as
an attachment.

--
Regards,

Tushar Mehta
www.tushar-mehta.com
Excel, PowerPoint, and VBA add-ins, tutorials
Custom MS Office productivity solutions

In article ,

ezrathedog@hot-
nospam-mail.com says...
Hi everyone. I'm new VBA and have very minimal knowledge of most

VBA
commands, however, I can understand how simple macros work by

reading
them.
I'm hoping that someone here can help me out with a macro I'm

attempting
to
write.

The macro is for a monthly financial report. The spreadsheet

consists
of
two worksheets. The first worksheet is the report, and second is

a
list
numbers (departments). What I would like the macro to do is:

1. Take the first cell of the list of department numbers from the

second
sheet (ie. contents of cell A1) and copy it into a cell on sheet 1

(ie.
cell
B5).

2. Perform a manual calculation (what would happen after pressing

the
F9
key). This step is actually the easy one that I can figure out.

3. Supress all rows that have a balance of 0. For example, if all
dollar
amounts on a row add up to 0, this row would be hidden.

4. Save the file with the filename of the department number.

5. Unsupress rows from step #3.

6. Repeat this entrie process for all departments, so it would go

back
to
sheet #2, and advance to the second number on the list...and

continue
until
it gets to the end of the list.


I would be very greatful if someone could shed some light on this

task.
Even if someone could tell me the basic methods for these steps, I

could
work with that and research those methods.

Thanks in advance for any help.













All times are GMT +1. The time now is 11:20 PM.

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