Página 1 de 1

VBA no Excel 2010 acessa Excel 2003

Enviado: 07 Abr 2015 às 12:15
por MarceloStrehlow
Bom Dia a todos!

Nos sistemas que trabalhamos conseguimos extrair relatórios e exportá-los para excel.

O arquivo exportado abre-se no aplicativo excel 2003. O aplicativo que está instalado no PC é o excel 2010 e nesse quero fazer a programação.

Como escrevo um programa no VBA do Excel 2010, que acesse uma planilha do aplicativo excel 2003 que está aberto no PC, e copie a coluna A, por exemplo, para uma planilha do aplicativo excel 2010 onde está a macro, para aí sim fazer os tratamentos necessários?

Não sei se me fiz entender, o que quero é evitar que o usuário selecione manualmente dados do excel 2003 e cole no excel 2010. Quero que a macro faça isso.

Fiz um vídeo do processo manual utilizando o gravador de macros para verificar o código gravado, mas não obtive sucesso. https://www.sendspace.com/file/t9jwn5

Obrigado pelo espaço!
Att

VBA no Excel 2010 acessa Excel 2003

Enviado: 07 Abr 2015 às 17:17
por laennder
Marcelo, é possível você acessar os valores sem a necessidade de abrir a pasta de trabalho antiga na aplicação do Excel 2003. As versões 2007/2010/2013 também abre arquivos do Excel 2003 (xls), e você pode fazer isso via código VBA também.

Você abre o arquivo de origem (xls), copia os dados e cola no arquivo de destino (xlsx).

Seria algo semelhante a isso.
Código: Selecionar todos
Sub CopiarDados()

Dim wbOrigem As Workbook    
Dim wsOrigem As Worksheet   
Dim wsDestino As Worksheet   
 
set wbOrigem = Worbooks.Open("c:\caminho do arquivo\arquivo.xls")    
set wsOrigem = wbOrigem.Worksheets("PlanOrigem")

set wsDestino = ThisWorkbook.Worksheets("PlanDestino")

wsOrigem.Range("A1:C10").Copy
wsDestino.Range("A1").Paste
    
wbOrigem.Close SaveChanges:=False

End Sub

Re: VBA no Excel 2010 acessa Excel 2003

Enviado: 07 Abr 2015 às 19:54
por MarceloStrehlow
Laennder muito obrigado pelo retorno tão rápido.

Entendi o que você fez e com certeza dá certo, porém a questão é que quando exporto o relatório para excel, este se abre automaticamente no excel 2003, não é local, é de modo remoto, tanto que nem tenho a aplicação excel 2003 instalada no PC e não tenho opção de abrir o relatório pelo excel 2010, e também ele não necessita ser salvo.

Temos uma outra planilha que acessa outro aplicativo. Parte do código é este abaixo, talvez se conseguisse me ajudar a ajustá-lo para o excel 2003...

If Not IsObject(application) Then
Set App = GetObject("Aplicativo")
Set application = App.GetScriptingEngine
End If

Abraço!

VBA no Excel 2010 acessa Excel 2003

Enviado: 08 Abr 2015 às 09:51
por laennder
Marcelo, acredito eu que se o aplicativo não está na sua máquina (ou na máquina que está executando a macro), não é possível acessá-lo. Posso estar enganado, vou dar uma pesquisada sobre o assunto e se eu encontrar algo, posto aqui.

Se mais alguém que ler esse post posteriormente souber responder, fiquem a vontade. :D :D

Re: VBA no Excel 2010 acessa Excel 2003

Enviado: 08 Abr 2015 às 13:36
por alexandrevba
Boa tarde!!

Eu sinceramente não entendi a dúvida.
porém a questão é que quando exporto o relatório para excel, este se abre automaticamente no excel 2003
Você usa um sistema ou aplicação e nela exporta um relatório em formato xls ?

Esse acesso é em uma rede interna? você tem permissão (nível de privilégio) para acessar a pasta?

Att

Re: VBA no Excel 2010 acessa Excel 2003

Enviado: 08 Abr 2015 às 18:42
por MarceloStrehlow
Boa Noite Alexandre!

É exatamente isso.

Você usa um sistema ou aplicação e nela exporta um relatório em formato xls ?
Sim
Esse acesso é em uma rede interna?
Sim
Você tem permissão (nível de privilégio) para acessar a pasta?
Sim

Podemos tentar escrever o código como se fosse local?
Pois quando abro o gerenciador de tarefas existe uma instância do excel rodando.

A função mais indicada seria a GetObject?

No meu Note particular instalei o excel 2003 e o excel 2010, mas não consigo fazer o GetObject funcionar aqui.