ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Reducing A Number By 1 (one) (https://www.excelbanter.com/excel-programming/306607-reducing-number-1-one.html)

chief

Reducing A Number By 1 (one)
 
I have a cell range named CNT. Initially a number is manually entered in CNT
for the number of rows to be added at the cursor's position. Let's say that
number is 2 (two). As the machine adds rows, I want it to decrease the value
of CNT by 1 (one) until the value of CNT equals zero (0). I do not know how
to write an Excel macro line to do this. If it were a Lotus 1-2-3 macro,
that line would be, {let cnt;cnt-1}. My macro's end result is a circular
reference and the value of CNT is 0 (zero) after its first itineration.
Below is my macro.

Sub Macro1()
' Inserts rows until CNT value equals zero
Do Until Range ("CNT") = 0
If Range ("CNT") = 1 Then
ActiveCell.Select
Selection.EntireRow.Insert
Range ("CNT").Formula ="=(CNT)-1" '<-- My incorrect line
End If
Loop
End Sub

Thank you very much for your help.
--
Rodney Getschman
Wisconsin VFW

William[_2_]

Reducing A Number By 1 (one)
 
Hi Chief

Try it this way - the code inserts "x" number of rows from the active cell
where "x" is the number entered in range "CNT". I hope I've interpreted you
post accurately.

Sub test()
Range(ActiveCell, ActiveCell.Offset(Range("CNT"), 0)). _
EntireRow.Insert Shift:=xlDown
End Sub

--
XL2002
Regards

William



"Chief" wrote in message
...
| I have a cell range named CNT. Initially a number is manually entered in
CNT
| for the number of rows to be added at the cursor's position. Let's say
that
| number is 2 (two). As the machine adds rows, I want it to decrease the
value
| of CNT by 1 (one) until the value of CNT equals zero (0). I do not know
how
| to write an Excel macro line to do this. If it were a Lotus 1-2-3 macro,
| that line would be, {let cnt;cnt-1}. My macro's end result is a circular
| reference and the value of CNT is 0 (zero) after its first itineration.
| Below is my macro.
|
| Sub Macro1()
| ' Inserts rows until CNT value equals zero
| Do Until Range ("CNT") = 0
| If Range ("CNT") = 1 Then
| ActiveCell.Select
| Selection.EntireRow.Insert
| Range ("CNT").Formula ="=(CNT)-1" '<-- My incorrect line
| End If
| Loop
| End Sub
|
| Thank you very much for your help.
| --
| Rodney Getschman
| Wisconsin VFW



chief

Reducing A Number By 1 (one)
 
Hello William
That's a really neat way of "doing the thing". But, your macro inserts one
row too many. Would you please rewrite it for me to only insert the number
of rows commensurate with the number entered in the cell named CNT? Thanks
again.


"William" wrote:

Hi Chief

Try it this way - the code inserts "x" number of rows from the active cell
where "x" is the number entered in range "CNT". I hope I've interpreted you
post accurately.

Sub test()
Range(ActiveCell, ActiveCell.Offset(Range("CNT"), 0)). _
EntireRow.Insert Shift:=xlDown
End Sub

--
XL2002
Regards

William



"Chief" wrote in message
...
| I have a cell range named CNT. Initially a number is manually entered in
CNT
| for the number of rows to be added at the cursor's position. Let's say
that
| number is 2 (two). As the machine adds rows, I want it to decrease the
value
| of CNT by 1 (one) until the value of CNT equals zero (0). I do not know
how
| to write an Excel macro line to do this. If it were a Lotus 1-2-3 macro,
| that line would be, {let cnt;cnt-1}. My macro's end result is a circular
| reference and the value of CNT is 0 (zero) after its first itineration.
| Below is my macro.
|
| Sub Macro1()
| ' Inserts rows until CNT value equals zero
| Do Until Range ("CNT") = 0
| If Range ("CNT") = 1 Then
| ActiveCell.Select
| Selection.EntireRow.Insert
| Range ("CNT").Formula ="=(CNT)-1" '<-- My incorrect line
| End If
| Loop
| End Sub
|
| Thank you very much for your help.
| --
| Rodney Getschman
| Wisconsin VFW




William[_2_]

Reducing A Number By 1 (one)
 
Hi Chief

Sub test()
Range(ActiveCell, ActiveCell.Offset(Range("CNT") - 1, 0)). _
EntireRow.Insert Shift:=xlDown
End Sub

--
XL2002
Regards

William



"Chief" wrote in message
...
| Hello William
| That's a really neat way of "doing the thing". But, your macro inserts
one
| row too many. Would you please rewrite it for me to only insert the
number
| of rows commensurate with the number entered in the cell named CNT?
Thanks
| again.
|
|
| "William" wrote:
|
| Hi Chief
|
| Try it this way - the code inserts "x" number of rows from the active
cell
| where "x" is the number entered in range "CNT". I hope I've interpreted
you
| post accurately.
|
| Sub test()
| Range(ActiveCell, ActiveCell.Offset(Range("CNT"), 0)). _
| EntireRow.Insert Shift:=xlDown
| End Sub
|
| --
| XL2002
| Regards
|
| William
|
|

|
| "Chief" wrote in message
| ...
| | I have a cell range named CNT. Initially a number is manually entered
in
| CNT
| | for the number of rows to be added at the cursor's position. Let's
say
| that
| | number is 2 (two). As the machine adds rows, I want it to decrease
the
| value
| | of CNT by 1 (one) until the value of CNT equals zero (0). I do not
know
| how
| | to write an Excel macro line to do this. If it were a Lotus 1-2-3
macro,
| | that line would be, {let cnt;cnt-1}. My macro's end result is a
circular
| | reference and the value of CNT is 0 (zero) after its first
itineration.
| | Below is my macro.
| |
| | Sub Macro1()
| | ' Inserts rows until CNT value equals zero
| | Do Until Range ("CNT") = 0
| | If Range ("CNT") = 1 Then
| | ActiveCell.Select
| | Selection.EntireRow.Insert
| | Range ("CNT").Formula ="=(CNT)-1" '<-- My incorrect line
| | End If
| | Loop
| | End Sub
| |
| | Thank you very much for your help.
| | --
| | Rodney Getschman
| | Wisconsin VFW
|
|
|



Dana DeLouis[_3_]

Reducing A Number By 1 (one)
 
Just another way by putting EntireRow first. Inserting an entire row
assumes "xlDown."

ActiveCell.EntireRow.Resize([CNT]).Insert
'or
ActiveCell.EntireRow.Resize([CNT] - 1).Insert

HTH
Dana DeLouis


"Chief" wrote in message
...
Hello William
That's a really neat way of "doing the thing". But, your macro inserts

one
row too many. Would you please rewrite it for me to only insert the

number
of rows commensurate with the number entered in the cell named CNT?

Thanks
again.


"William" wrote:

Hi Chief

Try it this way - the code inserts "x" number of rows from the active

cell
where "x" is the number entered in range "CNT". I hope I've interpreted

you
post accurately.

Sub test()
Range(ActiveCell, ActiveCell.Offset(Range("CNT"), 0)). _
EntireRow.Insert Shift:=xlDown
End Sub

--
XL2002
Regards

William



"Chief" wrote in message
...
| I have a cell range named CNT. Initially a number is manually entered

in
CNT
| for the number of rows to be added at the cursor's position. Let's

say
that
| number is 2 (two). As the machine adds rows, I want it to decrease

the
value
| of CNT by 1 (one) until the value of CNT equals zero (0). I do not

know
how
| to write an Excel macro line to do this. If it were a Lotus 1-2-3

macro,
| that line would be, {let cnt;cnt-1}. My macro's end result is a

circular
| reference and the value of CNT is 0 (zero) after its first

itineration.
| Below is my macro.
|
| Sub Macro1()
| ' Inserts rows until CNT value equals zero
| Do Until Range ("CNT") = 0
| If Range ("CNT") = 1 Then
| ActiveCell.Select
| Selection.EntireRow.Insert
| Range ("CNT").Formula ="=(CNT)-1" '<-- My incorrect line
| End If
| Loop
| End Sub
|
| Thank you very much for your help.
| --
| Rodney Getschman
| Wisconsin VFW







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

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