View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Jim Thomlinson[_3_] Jim Thomlinson[_3_] is offline
external usenet poster
 
Posts: 983
Default How do I use a variable name for a workbook in vba

There is probably no "Sheet1" in the workbook. You will also have a problem
if the spreadsheet you want to open does not exist. You can modify your code
as follows:

Sheets(1).Copy After:=Windows(sFile).Sheets(1)

or use this code... which will let you know if the file does not exist...

Private Const m_cPath As String = "C:\"

Private Function GetFile() As String
GetFile = InputBox("Enter the Contract Number: ", "Contract File") &
".xls"

End Function

Private Sub Test()
Dim wbkCopyTo As Workbook
Dim shtToCopy As Worksheet

On Error Resume Next
Set wbkCopyTo = Workbooks.Open(m_cPath & GetFile)
On Error GoTo 0
If wbkCopyTo Is Nothing Then
MsgBox "Workbook not found.", vbCritical, "File Error"
Else
Set shtToCopy = ThisWorkbook.Sheets(1)
shtToCopy.Copy wbkCopyTo.Sheets(1)
wbkCopyTo.Activate
End If
End Sub




"Emma" wrote:

I am getting an error he

Sheets("Sheet1").Copy After:=Windows(sFile).Sheets(1)

which says that

"Oject doesn't support this property or method"

Here is the code that I used:

Call GetContractFileName

Workbooks.Open
FileName:="G:\USER\Contracts\Data_Files\All_2004_C atalog.xls"
sFile = contractfilename
cntNo = ContractNo
Sheets("Sheet1").Copy After:=Windows(sFile).Sheets(1)
Windows(sFile).Activate
Sheets(cntNo).Select
_____________________________________
Public Function GetContractFileName()
ContractNo = InputBox("Enter the Contract Number: ", "Contract File")
contractfilename = ContractNo & ".xls"

End Function
__________________________________________
"Bob Phillips" wrote:

I think this might help

Call GetContractFileName

Workbooks.Open
FileName:="G:\USER\Contracts\Data_Files\All_2004_C atalog.xls"
sFile = GetContractFileName
Sheets("Sheet1").Copy After:=Windows(sFile).Sheets(1)
Windows(sFile).Activate

are you sure about this next line, a sheet wouldn't normally have .xls

at the end

Sheets(sFile).Select


_______________________________________
Public Function GetContractFileName()
ContractFile = InputBox("Enter the Contract Number: ", "Contract File")
ContractNo=ContractFile
ContractFileName = ContractFile & ".xls"
End Function
_______________________________



--

HTH

RP
(remove nothere from the email address if mailing direct)


"Emma" wrote in message
...
Here is what I am trying to do. We download information from our AS400

all
the time in particular a "contract file" I need to be able to create a

macro
that formats this contract file and performs several calculations on it.

I
am trying to do this via a macro button. I am having a problem when I

call
the file in my code.

Here is where I start having problems:


Call GetContractFileName

Workbooks.Open
FileName:="G:\USER\Contracts\Data_Files\All_2004_C atalog.xls"
Sheets("Sheet1").Select
Sheets("Sheet1").Copy After:=Windows("80266-00-0.xls").Sheets(1) 'here
is where I need to use the variable "ContractFileName" I just don't know

how
to do it.
Windows("80266-00-0.xls").Activate 'here also
Sheets("80266-00-0.xls").Select 'and here too

_______________________________________
Public Sub GetContractFileName()
ContractFile = InputBox("Enter the Contract Number: ", "Contract

File")
ContractNo=ContractFile
ContractFile = ContractFile & ".xls"
End Sub
_______________________________


Can someone help? Pleeease!