ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Addition of rows in table with loop (https://www.excelbanter.com/excel-programming/287718-addition-rows-table-loop.html)

desmondleow[_14_]

Addition of rows in table with loop
 
I have the following code to help me insert a row in between groups o
similar data.
However, it doesn't work after the first row has been inserted. Coul
someone tell me what's wrong with my code?

For Each c In ActiveWorkbook.Worksheets("CIT
GF").Range(myrange.Address)

If Cells(c.Row, 9).Value < Cells(c.Row + 1, 9).Value Then
'Address = c.Address
c.EntireRow.Offset(1, 0).Select
Selection.Insert Shift:=xlDown
'Range("c.Row,c.column").Offset(1, 0).Select
c = c.Offset(3, 0)
End If
Next c


Regard

--
Message posted from http://www.ExcelForum.com


Chip Pearson

Addition of rows in table with loop
 
Desmond,

Change

c = c.Offset(3, 0)

To

Set c = c.Offset(3, 0)


--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com



"desmondleow " wrote
in message ...
I have the following code to help me insert a row in between

groups of
similar data.
However, it doesn't work after the first row has been inserted.

Could
someone tell me what's wrong with my code?

For Each c In ActiveWorkbook.Worksheets("CITI
GF").Range(myrange.Address)

If Cells(c.Row, 9).Value < Cells(c.Row + 1, 9).Value Then
'Address = c.Address
c.EntireRow.Offset(1, 0).Select
Selection.Insert Shift:=xlDown
'Range("c.Row,c.column").Offset(1, 0).Select
c = c.Offset(3, 0)
End If
Next c


Regards


---
Message posted from http://www.ExcelForum.com/




desmondleow[_15_]

Addition of rows in table with loop
 
Hi...

It still doesn't work. It keeps inserting new rows and doesn't move
down to the next line of data. Is there any reason why?

Regards,
Desmond


---
Message posted from http://www.ExcelForum.com/


Bob Phillips[_6_]

Addition of rows in table with loop
 
The problem is that when you insert the row you change the are being
processed, and the inserted row becomes part of the next test. This never
matches, so you insert another row at the same point, and so on, until you
get an error.

What you need to do is work from the bottom up, like so

With ActiveWorkbook.Worksheets("CITIGF").Range(myrange)
For i = Cells(Rows.Count, .Column).End(xlUp).Row To .Row + 1 Step -1
If Cells(i, 9).Value < Cells(i - 1, 9).Value Then
'Address = c.Address
Cells(i, 1).EntireRow.Insert Shift:=xlDown
End If
Next i
End With


--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)

"desmondleow " wrote in message
...
I have the following code to help me insert a row in between groups of
similar data.
However, it doesn't work after the first row has been inserted. Could
someone tell me what's wrong with my code?

For Each c In ActiveWorkbook.Worksheets("CITI
GF").Range(myrange.Address)

If Cells(c.Row, 9).Value < Cells(c.Row + 1, 9).Value Then
'Address = c.Address
c.EntireRow.Offset(1, 0).Select
Selection.Insert Shift:=xlDown
'Range("c.Row,c.column").Offset(1, 0).Select
c = c.Offset(3, 0)
End If
Next c


Regards


---
Message posted from http://www.ExcelForum.com/





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

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