ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Macro: insert rows anywhere in the sheet (https://www.excelbanter.com/excel-programming/443255-macro-insert-rows-anywhere-sheet.html)

excel

Macro: insert rows anywhere in the sheet
 
I'm rather new to macro-programming...

I want a macro to insert blank rows beneath the active row (or cell) and
then copy the active row to the first blank row beneath the row with
content. By using "Register macro" I have made a macro like this:
Sub Makro1()
'
' Makro1 Makro
'
' Hurtigtast: CTRL+m
'
Rows("6:10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("5:5").Select
Selection.Copy
Rows("6:6").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub


The problem is that if the cursor is pointing at for instance row 12, and I
activate the macro by ctrl+m, the blank rows still are inserted beneath row
5, not beneath row 12.

Kjell



Dave Peterson[_2_]

Macro: insert rows anywhere in the sheet
 
You may want to look at David McRitchie's site:
http://www.mvps.org/dmcritchie/excel/insrtrow.htm
look for: InsertRowsAndFillFormulas

On 06/25/2010 01:52, excel wrote:
I'm rather new to macro-programming...

I want a macro to insert blank rows beneath the active row (or cell) and
then copy the active row to the first blank row beneath the row with
content. By using "Register macro" I have made a macro like this:
Sub Makro1()
'
' Makro1 Makro
'
' Hurtigtast: CTRL+m
'
Rows("6:10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("5:5").Select
Selection.Copy
Rows("6:6").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub


The problem is that if the cursor is pointing at for instance row 12, and I
activate the macro by ctrl+m, the blank rows still are inserted beneath row
5, not beneath row 12.

Kjell



--
Dave Peterson

Roger Govier[_8_]

Macro: insert rows anywhere in the sheet
 
Hi

Try

Sub Makro1()

' Makro1 Makro
' Hurtigtast: CTRL+m
Dim ar As Long
ar = ActiveCell.Row
Rows(ar & ":" & ar + 4).Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove
Rows(ar - 1).Copy Rows(ar)
Application.CutCopyMode = False
End Sub


--

Regards
Roger Govier

"excel" <kjeblo(())frisurf.no wrote in message
...
I'm rather new to macro-programming...

I want a macro to insert blank rows beneath the active row (or cell) and
then copy the active row to the first blank row beneath the row with
content. By using "Register macro" I have made a macro like this:
Sub Makro1()
'
' Makro1 Makro
'
' Hurtigtast: CTRL+m
'
Rows("6:10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("5:5").Select
Selection.Copy
Rows("6:6").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub


The problem is that if the cursor is pointing at for instance row 12, and
I activate the macro by ctrl+m, the blank rows still are inserted beneath
row 5, not beneath row 12.

Kjell


__________ Information from ESET Smart Security, version of virus
signature database 5228 (20100625) __________

The message was checked by ESET Smart Security.

http://www.eset.com




__________ Information from ESET Smart Security, version of virus signature database 5228 (20100625) __________

The message was checked by ESET Smart Security.

http://www.eset.com




Kjell Blomseth

Macro: insert rows anywhere in the sheet
 
Thanks Roger. That solved my problem!

Kjell


"Roger Govier" skrev i melding
...
Hi

Try

Sub Makro1()

' Makro1 Makro
' Hurtigtast: CTRL+m
Dim ar As Long
ar = ActiveCell.Row
Rows(ar & ":" & ar + 4).Insert Shift:=xlDown, _
CopyOrigin:=xlFormatFromLeftOrAbove
Rows(ar - 1).Copy Rows(ar)
Application.CutCopyMode = False
End Sub


--

Regards
Roger Govier

"excel" <kjeblo(())frisurf.no wrote in message
...
I'm rather new to macro-programming...

I want a macro to insert blank rows beneath the active row (or cell) and
then copy the active row to the first blank row beneath the row with
content. By using "Register macro" I have made a macro like this:
Sub Makro1()
'
' Makro1 Makro
'
' Hurtigtast: CTRL+m
'
Rows("6:10").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Rows("5:5").Select
Selection.Copy
Rows("6:6").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub


The problem is that if the cursor is pointing at for instance row 12, and
I activate the macro by ctrl+m, the blank rows still are inserted beneath
row 5, not beneath row 12.

Kjell


__________ Information from ESET Smart Security, version of virus
signature database 5228 (20100625) __________

The message was checked by ESET Smart Security.

http://www.eset.com




__________ Information from ESET Smart Security, version of virus
signature database 5228 (20100625) __________

The message was checked by ESET Smart Security.

http://www.eset.com






GS[_5_]

Macro: insert rows anywhere in the sheet
 
Here's a generic proc you can modify to suit or keep as a reusable
utility:

Public Sub InsertBlankRows(Optional Position As String)
' Inserts a specified number of rows at the location specified.
' If the Position arg is not used then the default is ActiveCell.Row.

Dim vRows As Variant, lPos As Long
Const sMsg As String = "Enter the number of rows to insert."

'Evaluate user input
On Error Resume Next
vRows = InputBox(Prompt:=sMsg, Default:=1)
If vRows = "" Then Exit Sub '//user cancels
If Not Err = 0 Or _
Not IsNumeric(vRows) Or _
Not vRows = 1 Then Exit Sub

'Get the position to insert
lPos = ActiveCell.Row
If Position = "Below" Then lPos = lPos + 1

'Insert the rows
Cells(lPos, 1).Resize(vRows).Insert Shift:=xlDown
Application.CutCopyMode = False
End Sub

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc




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

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