EXCEL X VB
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
[Ô]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
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.
Falta fechar a aplicação
eapp.Application.Quit
eapp.Application.Quit
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
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
Caras,
consegui resolver,,substituà a linha abaixo
Range(a & i).FormulaR1C1 = Ped!Codigo
por
xl.Range(a & i).FormulaR1C1 = Ped!Codigo
Obrigado
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