View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Dave Peterson Dave Peterson is offline
external usenet poster
 
Posts: 35,218
Default insert rows based on a cell's value (macro)

It's lots easier if you start at the bottom and work your way up:

Option Explicit
Sub AddMultitipleRows2()

Dim FirstRow As Long
Dim LastRow As Long
Dim iRow As Long
Dim wks As Worksheet

Set wks = ActiveSheet

With wks
FirstRow = 2
LastRow = .Cells(.Rows.Count, "U").End(xlUp).Row

For iRow = LastRow To FirstRow Step -1
With .Cells(iRow, "U")
If IsNumeric(.Value) Then
If .Value 1 Then
.Offset(1, 0).Resize(.Value).EntireRow.Insert
End If
End If
End With
Next iRow
End With

End Sub

Shoney wrote:

Hello,

I'm trying to write a macro that will insert a number of rows based on a
cell's value.

For example, if the value of a cell in column "U", beginning w/ "U2", is 2,
insert one row under it. Then, go to the next integer in column "U" (in this
case, "U4". I would like for the macro to repeat until there is no longer a
value in column "U".

Note: If the value in "U" is 1, then no rows would need to be inserted.

The code that I have so far is as follows:

Sub AddMultitipleRows()

If Range("U2") 1 Then
'Insert that number of rows
Rows.Insert Shift:=xlDown
End If

Do Until ActiveCell.Value = 0
ActiveCell.Offset(1, 0).Select
Loop

End Sub

I appreciate any help you can provide.

Thank you.


--

Dave Peterson