Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
  • Avatar do usuário
Por MarceloStrehlow
#71
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
Avatar do usuário
Por laennder
Avatar
#76
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
#81
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!
Avatar do usuário
Por laennder
Avatar
#88
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
Avatar do usuário
Por alexandrevba
Avatar
#93
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
#95
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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord