Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default "Insert" Macro

I am looking for a way to insert rows underneath a row, with a macro reading
a cell, and then inserting that number of rows underneath.

e.g. A column reads 500-505. The macro will seperate the numbers (500,505)
into adjecent cells, calculate the difference (5), and then insert that
number of columns underneath the original row (reading "500-505" with 5 blank
rows underneath). I figured out how to do the calculation, but I can't find
a way to insert the columns. Is there a way to do this? I already know the
answer is "yes", but is it feasable for a beginner macro'er to try and
implement?

Thanks,
Sean H
  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default "Insert" Macro

Sean

try one of these:

Sub InsertRows()
' all variables defined
' step by step approach
Dim CellContent As String
Dim FirstNumber As Long
Dim SecondNumber As Long
Dim Difference As Long
Dim BreakPoint As Long
On Error GoTo NoHyphen
CellContent = ActiveCell.Value
BreakPoint = WorksheetFunction.Find("-", CellContent)
FirstNumber = --Left(CellContent, BreakPoint - 1)
SecondNumber = --Right(CellContent, Len(CellContent) - BreakPoint)
Difference = SecondNumber - FirstNumber
ActiveCell.Offset(1, 0).Resize(Difference).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Sub InsertRowsShortVersion()
' no defined variables
On Error GoTo NoHyphen
ActiveCell.Offset(1, 0).Resize( _
--Right( _
ActiveCell.Value, _
Len(ActiveCell.Value) - _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value)) - _
--Left( _
ActiveCell.Value, _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value) - 1) _
).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Regards

Trevor


"Sean H" wrote in message
...
I am looking for a way to insert rows underneath a row, with a macro
reading
a cell, and then inserting that number of rows underneath.

e.g. A column reads 500-505. The macro will seperate the numbers
(500,505)
into adjecent cells, calculate the difference (5), and then insert that
number of columns underneath the original row (reading "500-505" with 5
blank
rows underneath). I figured out how to do the calculation, but I can't
find
a way to insert the columns. Is there a way to do this? I already know
the
answer is "yes", but is it feasable for a beginner macro'er to try and
implement?

Thanks,
Sean H



  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default "Insert" Macro

Trevor,

Thanks a lot, that worked great. Here is another problem of mine. Is there
a way to loop this so that I can execute the macro once, and have it expand
my whole file? After that, the macro needs to fill in the numbers between
(and including) the numbers. My file looks something like this:

505-520
521-530
532-540

As you will notcie, sometimes the range jumps a number and leaves it out,
eliminating my option for a simple x = x + 1 style loop.

Thanks again for all your help.

Regards,
Sean Heckathorne

"Trevor Shuttleworth" wrote:

Sean

try one of these:

Sub InsertRows()
' all variables defined
' step by step approach
Dim CellContent As String
Dim FirstNumber As Long
Dim SecondNumber As Long
Dim Difference As Long
Dim BreakPoint As Long
On Error GoTo NoHyphen
CellContent = ActiveCell.Value
BreakPoint = WorksheetFunction.Find("-", CellContent)
FirstNumber = --Left(CellContent, BreakPoint - 1)
SecondNumber = --Right(CellContent, Len(CellContent) - BreakPoint)
Difference = SecondNumber - FirstNumber
ActiveCell.Offset(1, 0).Resize(Difference).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Sub InsertRowsShortVersion()
' no defined variables
On Error GoTo NoHyphen
ActiveCell.Offset(1, 0).Resize( _
--Right( _
ActiveCell.Value, _
Len(ActiveCell.Value) - _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value)) - _
--Left( _
ActiveCell.Value, _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value) - 1) _
).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Regards

Trevor


"Sean H" wrote in message
...
I am looking for a way to insert rows underneath a row, with a macro
reading
a cell, and then inserting that number of rows underneath.

e.g. A column reads 500-505. The macro will seperate the numbers
(500,505)
into adjecent cells, calculate the difference (5), and then insert that
number of columns underneath the original row (reading "500-505" with 5
blank
rows underneath). I figured out how to do the calculation, but I can't
find
a way to insert the columns. Is there a way to do this? I already know
the
answer is "yes", but is it feasable for a beginner macro'er to try and
implement?

Thanks,
Sean H




  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,089
Default "Insert" Macro

Sean

this will loop through a selection and create the blank lines.

Sub InsertRowsLoop()
' all variables defined
' step by step approach
Dim SelectedColumn As Long
Dim FirstRow As Long
Dim LastRow As Long
Dim iCount As Long
Dim CellContent As String
Dim FirstNumber As Long
Dim SecondNumber As Long
Dim Difference As Long
Dim BreakPoint As Long

SelectedColumn = Selection.Column
FirstRow = Selection.Row
LastRow = Selection.Row + Selection.Rows.Count - 1

On Error GoTo NoHyphen
' Note: work up from the bottom
For iCount = LastRow To FirstRow Step -1
CellContent = Cells(iCount, SelectedColumn).Value
BreakPoint = WorksheetFunction.Find("-", CellContent)
FirstNumber = --Left(CellContent, BreakPoint - 1)
SecondNumber = --Right(CellContent, Len(CellContent) - BreakPoint)
Difference = SecondNumber - FirstNumber
Cells(iCount, SelectedColumn).Offset(1,
0).Resize(Difference).EntireRow.Insert
Next 'iCount
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

I'll leave you to increment the numbers. All you need to do is work down
from the top and, if the cell is blank, set it to the previous cell plus 1.
No doubt there are other ways using AutoFill, etc.

Regards

Trevor


"Sean H" wrote in message
...
Trevor,

Thanks a lot, that worked great. Here is another problem of mine. Is
there
a way to loop this so that I can execute the macro once, and have it
expand
my whole file? After that, the macro needs to fill in the numbers between
(and including) the numbers. My file looks something like this:

505-520
521-530
532-540

As you will notcie, sometimes the range jumps a number and leaves it out,
eliminating my option for a simple x = x + 1 style loop.

Thanks again for all your help.

Regards,
Sean Heckathorne

"Trevor Shuttleworth" wrote:

Sean

try one of these:

Sub InsertRows()
' all variables defined
' step by step approach
Dim CellContent As String
Dim FirstNumber As Long
Dim SecondNumber As Long
Dim Difference As Long
Dim BreakPoint As Long
On Error GoTo NoHyphen
CellContent = ActiveCell.Value
BreakPoint = WorksheetFunction.Find("-", CellContent)
FirstNumber = --Left(CellContent, BreakPoint - 1)
SecondNumber = --Right(CellContent, Len(CellContent) - BreakPoint)
Difference = SecondNumber - FirstNumber
ActiveCell.Offset(1, 0).Resize(Difference).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Sub InsertRowsShortVersion()
' no defined variables
On Error GoTo NoHyphen
ActiveCell.Offset(1, 0).Resize( _
--Right( _
ActiveCell.Value, _
Len(ActiveCell.Value) - _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value)) - _
--Left( _
ActiveCell.Value, _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value) - 1) _
).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Regards

Trevor


"Sean H" wrote in message
...
I am looking for a way to insert rows underneath a row, with a macro
reading
a cell, and then inserting that number of rows underneath.

e.g. A column reads 500-505. The macro will seperate the numbers
(500,505)
into adjecent cells, calculate the difference (5), and then insert that
number of columns underneath the original row (reading "500-505" with 5
blank
rows underneath). I figured out how to do the calculation, but I can't
find
a way to insert the columns. Is there a way to do this? I already
know
the
answer is "yes", but is it feasable for a beginner macro'er to try and
implement?

Thanks,
Sean H








  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6
Default "Insert" Macro

Also,

Is there a way to save this macro so that I can use it every time I open a
new workbook, until I decide to delete the macro?

Thanks,
Sean Heckathorne

"Trevor Shuttleworth" wrote:

Sean

try one of these:

Sub InsertRows()
' all variables defined
' step by step approach
Dim CellContent As String
Dim FirstNumber As Long
Dim SecondNumber As Long
Dim Difference As Long
Dim BreakPoint As Long
On Error GoTo NoHyphen
CellContent = ActiveCell.Value
BreakPoint = WorksheetFunction.Find("-", CellContent)
FirstNumber = --Left(CellContent, BreakPoint - 1)
SecondNumber = --Right(CellContent, Len(CellContent) - BreakPoint)
Difference = SecondNumber - FirstNumber
ActiveCell.Offset(1, 0).Resize(Difference).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Sub InsertRowsShortVersion()
' no defined variables
On Error GoTo NoHyphen
ActiveCell.Offset(1, 0).Resize( _
--Right( _
ActiveCell.Value, _
Len(ActiveCell.Value) - _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value)) - _
--Left( _
ActiveCell.Value, _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value) - 1) _
).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Regards

Trevor


"Sean H" wrote in message
...
I am looking for a way to insert rows underneath a row, with a macro
reading
a cell, and then inserting that number of rows underneath.

e.g. A column reads 500-505. The macro will seperate the numbers
(500,505)
into adjecent cells, calculate the difference (5), and then insert that
number of columns underneath the original row (reading "500-505" with 5
blank
rows underneath). I figured out how to do the calculation, but I can't
find
a way to insert the columns. Is there a way to do this? I already know
the
answer is "yes", but is it feasable for a beginner macro'er to try and
implement?

Thanks,
Sean H




  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 35,218
Default "Insert" Macro

You could put it in a workbook and store that workbook in your XLStart folder.

Many people who want to have this kind of macro available each time they open
excel will name that file personal.xls.



Sean H wrote:

Also,

Is there a way to save this macro so that I can use it every time I open a
new workbook, until I decide to delete the macro?

Thanks,
Sean Heckathorne

"Trevor Shuttleworth" wrote:

Sean

try one of these:

Sub InsertRows()
' all variables defined
' step by step approach
Dim CellContent As String
Dim FirstNumber As Long
Dim SecondNumber As Long
Dim Difference As Long
Dim BreakPoint As Long
On Error GoTo NoHyphen
CellContent = ActiveCell.Value
BreakPoint = WorksheetFunction.Find("-", CellContent)
FirstNumber = --Left(CellContent, BreakPoint - 1)
SecondNumber = --Right(CellContent, Len(CellContent) - BreakPoint)
Difference = SecondNumber - FirstNumber
ActiveCell.Offset(1, 0).Resize(Difference).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Sub InsertRowsShortVersion()
' no defined variables
On Error GoTo NoHyphen
ActiveCell.Offset(1, 0).Resize( _
--Right( _
ActiveCell.Value, _
Len(ActiveCell.Value) - _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value)) - _
--Left( _
ActiveCell.Value, _
WorksheetFunction.Find( _
"-", _
ActiveCell.Value) - 1) _
).EntireRow.Insert
Exit Sub
NoHyphen:
MsgBox "Invalid Format", vbCritical, "No Hyphen"
End Sub

Regards

Trevor


"Sean H" wrote in message
...
I am looking for a way to insert rows underneath a row, with a macro
reading
a cell, and then inserting that number of rows underneath.

e.g. A column reads 500-505. The macro will seperate the numbers
(500,505)
into adjecent cells, calculate the difference (5), and then insert that
number of columns underneath the original row (reading "500-505" with 5
blank
rows underneath). I figured out how to do the calculation, but I can't
find
a way to insert the columns. Is there a way to do this? I already know
the
answer is "yes", but is it feasable for a beginner macro'er to try and
implement?

Thanks,
Sean H





--

Dave Peterson
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Insert "Find dialog box" edits into macro danno-c[_2_] Excel Discussion (Misc queries) 3 September 24th 09 05:40 PM
Macro to Insert Current Date into cell - Macro to "Save As" Guy[_2_] Excel Worksheet Functions 4 December 12th 08 08:20 PM
Lost "File Menu" - now it's "Edit / View / Insert.." but no "F daves Excel Discussion (Misc queries) 3 April 24th 07 04:52 AM
Insert "-" in text "1234567890" to have a output like this"123-456-7890" Alwyn Excel Discussion (Misc queries) 3 October 25th 05 11:36 PM
Adding "New" "Insert" "Delete" into a workbook to change from data 1 to data 2 etc Bob Reynolds[_2_] Excel Programming 0 March 4th 04 08:52 PM


All times are GMT +1. The time now is 02:13 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"