View Full Version : Copy Named Range
exwarrior
10-23-2007, 01:33 PM
I need guidance in creating a Macro that will copy named ranges from my "Template Sheet" and paste them a variable number of times within my "SpecTemplate" sheet. I will need to do this for many named ranges within my first sheet, and the number of times I paste the named ranges into my second sheet will vary. I currently have 2 named ranges to work with for this example: Actuator_NoMod , Flame_Arrestor. Thanks a million in advance.
Bob Phillips
10-23-2007, 01:40 PM
How do you know how many times to copy.
exwarrior
10-23-2007, 03:15 PM
It would have to be a variable. I run a query on some data that tells me how many time each template is needed so it would definately vary. I was thinking of allowing this value to be input with an inputbox?
Bob Phillips
10-24-2007, 01:20 AM
Public Sub CopyData()
Dim NumCopies As Long
Dim nme As Name
Dim NextRow As Long
Dim i As Long
With Worksheets("Template Sheet")
NumCopies = InputBox("How many copies?")
If NumCopies <> 0 Then
NextRow = 1
On Error Resume Next
For Each nme In ActiveWorkbook.Names
.Range(nme.Name).Copy Worksheets("SpecTemplate").Range("A" & NextRow)
For i = 1 To NumCopies
.Range(nme.Name).Copy Worksheets("SpecTemplate").Range("A" & NextRow)
NextRow = NextRow + .Range(nme.Name).Rows.Count
Next i
Next nme
End If
End With
End Sub
exwarrior
10-24-2007, 05:31 AM
I couldnt figure yours out but I made some progress out last night.
I can get it to copy and paste 5 times in 1 location but it does not move down the sheet while pastinge 5 times, here is my code: here are the values that i give the input boxes: 18, Actuator_NoMod, 5
Sub CopyRangeAlot()
Dim iCount, iAmount, iAmountDone As Integer
irow = ActiveCell.Row
icol = ActiveCell.Column
iCount = Application.InputBox("row count")
myRange = Application.InputBox("enter range name")
iAmount = Application.InputBox("how many times")
iAmountDone = 0
Do While iAmountDone <> iAmount
Range(myRange).Copy
Sheets("Template").Select
ActiveCell.PasteSpecial (xlPasteValues)
iAmountDone = iAmountDone + 1
ActiveCell.Offset = iCount
Loop
'iAmountDone = iAmountDone + 1
ActiveCell.Offset = iCount + 1
End Sub
jwise
10-24-2007, 07:38 AM
Try this for your loop:
Do While iAmountDone <> iAmount
Range(myRange).Copy
Sheets("Template").Select
ActiveCell.PasteSpecial (xlPasteValues)
iAmountDone = iAmountDone + 1
ActiveCell.Offset = iCount + 1
Loop
Good luck
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.