EXCEL X VB

WILL85 30/09/2012 12:37:48
#410876
Caras, criei uma rotina onde eu exporto dados da minha base para um arquivo excel, o que acontece é que ao executar pela segunda vez a mesma rotina ele retorna a seguitne msgm de erro:
[Ô]Run time error 1004 - Method range of object _global failed[Ô]

Segue o código:
[Ô] Dim Exlc As New Chart
Dim fso As New FileSystemObject
Dim Pedido As String

Dim xl As New Excel.Application
Dim xlw As Excel.Workbook

Pedido = [Ô]c:\Pedido\Pedido[Ô] & Ped!Fornecedor & Ped!Codigo & [Ô].xls[Ô]
If fso.FileExists(Pedido) Then
fso.DeleteFile Pedido
End If

fso.CopyFile [Ô]c:\pedido\modelo\pedido.xls[Ô], Pedido, True

Set eapp = CreateObject([Ô]excel.application[Ô])

Set xlw = xl.Workbooks.Open(Pedido)

[ô]Pedido
a = [Ô]j[Ô]
i = 3
Range(a & i).FormulaR1C1 = Ped!Codigo

eapp.Workbooks.Close
xlw.Close True
Set eapp = Nothing
Set EwkB = Nothing
Set ewks = Nothing
Set xlw = Nothing
Set xl = Nothing
Set Exlc = Nothing
[Ô]

Exatamente na linha [Ô] Range(a & i).FormulaR1C1 = Ped!Codigo[Ô] que o sistema retorna o erro.
Vi um posto nesse fórum, porém não consegui solucionar meu problema.
Alguém sabe me dizer o que pode estar faltando?

Só para dar uma explicação, nesse meu código eu copio um modelo padrão de pedido, renomeio ele com os nro do pedido em questão, e preencho as colunas do excel.

Vlwww
WILL85 02/10/2012 09:44:29
#411005
Caras, só apra acrescentar, depois desse erro, eu não consigo acessar o arquivo criado, verificando no task manager do windows, tem um processo do EXCEL pendente, só consigo alterar o arquivo matando esse processo.
MAURICIO 02/10/2012 10:16:37
#411016
Resposta escolhida
Falta fechar a aplicação


eapp.Application.Quit
WILL85 02/10/2012 18:38:25
#411087
Maurício, testei da sua maneira porém não resolveu, identifiquei que mesmo com o quit , o processo do excel continua no task manager.

Pesquisei em outros fóruns e alterei meu código um pouco, porém continuo com o mesmo erro:

[Ô] Dim a, b As String
Dim i As Integer
Dim fso As New FileSystemObject
Dim Pedido As String
Dim xl As Object

Set xl = Excel.Application

Pedido = [Ô]c:\Pedido\Pedido[Ô] & Ped!Fornecedor & Ped!Codigo & [Ô].xls[Ô]
If fso.FileExists(Pedido) Then
fso.DeleteFile Pedido
End If

fso.CopyFile [Ô]c:\pedido\modelo\pedido.xls[Ô], Pedido, True

Set xl = CreateObject([Ô]excel.application[Ô])

xl.Workbooks.Open (Pedido)

[ô]Pedido
a = [Ô]j[Ô]
i = 3
Range(a & i).FormulaR1C1 = Ped!Codigo

xl.Save
xl.Workbooks.Close
xl.Application.Quit
xl.Quit
Set xl = Nothing
[Ô]

Porém o erro persiste, ao tentar executar novamente ele retorna a mensagem de erro [Ô]Run time error 1004 - Method range of object _global failed[Ô], tem alguma outra maneira para dar um fim nesse processo do excel???

Obrigado
WILL85 02/10/2012 18:51:51
#411089
Caras,
consegui resolver,,substituí a linha abaixo
Range(a & i).FormulaR1C1 = Ped!Codigo

por
xl.Range(a & i).FormulaR1C1 = Ped!Codigo

Obrigado
Tópico encerrado , respostas não são mais permitidas