View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
SIGE SIGE is offline
external usenet poster
 
Posts: 206
Default Copy Different Name References to New Workbook

Hi Bob, Thanks for your reply!

I am nearly getting there ...
I would like to create a New workbook and put there the names (ranges)
from the sourcefile ... instead of transfering the ranges to an
already specified workbook open ...where this Workbook-name is
hardcoded. I've to repaet this procedure too often for different
workbooks...and changing the code seems not very efficient.
So far I came up with something like this...

Could you please check the syntax???
As this won't copy my ranges because my active workbook is the one i
newly created.. DO I need to create a class-module to establish what i
want?

Cheers Sige

Sub sige()
Dim ExpBook As Workbook
Dim nme

Set ExpBook = Workbooks.Add(xlWorksheet)
For Each nme In ActiveWorkbook.Names
If Left(nme.Name, 3) = "VBA" Then
MsgBox nme.Name
Range(nme.Name).Copy

With ExpBook
.Worksheets(1).Range(Range(nme.Name).Address).Past e
.SaveAs FileName:=ThisWorkbook.Path & "\temp.xls",
FileFormat:=xlWorkbook
.Close SaveChanges:=False
If Err < 0 Then MsgBox "Cannot export" &
ThisWorkbook.Path & "\temp.xls"
End With

Else
Left(nme.Name, 3) = ""
MsgBox "No names to export"
Exit Sub
End If
Next nme
End Sub


(SIGE) wrote in message . com...
Hi There,

I have created through VBA a couple of Names:
eg:
VBA1 = Sheet1!$B$1:$B$5
VBA2 = Sheet1!$C$10:$C$50
etc ...
-I do not see the light anymore in all the sample codes i found!!!-

Is there a way to copy all the ranges of my Names beginning with "VBA"
to a new workbook
(NOT the Names of the ranges (eg. VBA1)
nor the address (eg. Sheet1!$B$1:$B$5)
but the content in cells B1:B5 and C10:C50 and ... like Copy= Paste
Special

A bit like: ...
Application.Goto Reference:="VBA1"
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues
Selection.PasteSpecial Paste:=xlFormats
Application.Goto Reference:="VBA2"
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues
Selection.PasteSpecial Paste:=xlFormats
But looping ... so that each Name reference gets copied into the new
workbook, putting them on the same worksheet next to each other???

Looking like this in the new workbook:
A B ...
1 B1 C10
2 B2 C11
3 ... ...

Best Regards, Sige

Sub ListVBARangeNames()'Will display the Names in my workbook starting
with "VBA"
Dim RN As Object
Dim listrn As String

For Each RN In ActiveWorkbook.Names
If RN.Name Like "VBA*" Then
listrn = listrn & vbCr & RN.Name
End If
Next RN
MsgBox listrn
End Sub