Dados Externos

Tenho três planilhas, Pedidos.ods, 125.xls e 2369.xls O objetivo é:
1º - Abrir as planilhas 125.xls e 2369.xls (de forma oculta)
2º - Copiar determinados campos que estão em 125.xls e 2369.xls e lançar na planilha Pedidos.ods.
Já realizei a primeira parte que é abrir a planilha, porém a segunda parte não consegui pois não sei como relacionar dados entre abas de planilhas (arquivos) destinos.


A macro deverá abrir a planilha 125.xls e lançar na planilha Pedidos.ods os valores produto e preço. Após isso, deverá fechar 125.xls e assim com os demais códigos. Conseguindo fazer para uma creio que consigo replicar.

2369.xls

125.xls

Pedido.ods

Erro identificado no vínculo.

Ola @Amaral, se for campos fixos, pode referenciar direto.

Abra as duas planilha, na Dados na célula que quer a informação digite = e clique na célula da outra planilha.

De mais detalhes, se tiver os arquivos para exemplo, poste aqui.


ATENÇÂO:: Caso queira dar mais detalhes a sua pergunta, use Descrição da imagem na pergunta ou Descrição da imagem abaixo. Grato.

Tenho mais 50 planilhas que devem ser abertas, copiadas e fechadas. Citei apenas uma pois usarei um comando for.

@Amaral, vendo o jeitão dos arquivos fica mais fácil sugerir algo, poste o arquivo Dados e 2 dos 50, altere dados sigilosos e indique como tem que ficar.

@Amaral, todos arquivos de produtos (125, 2369 etc ) tem a mesma formatação e os campos são os mesmos.

Por exemplo no arquivo 2369 o nome do produto esta em B2, no 125 tambem esta em B2 etc…

Links 2 e 3 quebrado…

@Amaral, se a resposta acima for SIM, segue uma alternativa sem Macro.

Amaral.ods

ATENÇÃO: Altere o arquivo para Amaral.zip e descompacte, tem 4 arquivos.

São apenas exemplos, tem que ser com macro porque os arquivos são criados com códigos diferentes. dentro de cada arquivo tem 11 abas, porém não consigo ler arquivos externos e mandar para pedidos.ods. No excel eu sei fazer, no libre estou penando.

Bom dia @Amaral, pelo que vi você gostar de desenvolver macros complicadas assim como eu, isso é muito bom porque o conhecimento vai longe, aprendi e estou aprendendo muito aqui no ask. Segue planilhas com a macro que entendi que você precisa.

125.ods

Pedidos.ods

Dúvidas, estamos à disposição!

Sou curioso, porém não tenho as ferramentas certa. Sei muito no excel mas no meu serviço tem o libre e fui incumbido de criar um sistema no excel sem ter excel em todos os PCs. Resumindo, tenho que migrar tudo para o libre. Comprei livro, pesquiso e ponho em prática. Para piorar até na planilha do google (java script) estou trabalhando. Agradeço a este espaço e seus colaboradores que muito nos ajudam a trabalhar com o libre. Vou adaptar sua sugestão as minhas necessidades e dou um retorno mais. Muito Obrigado.

Funcionou, porém almejo lançar na planilha Pedido.ods os valores valores dos campos produto e preço do arquivo 125.ods. Como são mais de duas planilhas vou utilizar um comando for ou while para realizar esse processo. Estou tentando adaptar sua sugestão.
Teria como fazer:

PlanPedidos = ThisComponent.Sheets.GetByName("Planilha1")
EnderecoPlan125 = convertToURL( Environ("USERPROFILE")&"\Downloads\125.xls" )

e fazer

PlanPedidos .Sheets.getByName("Planilha1").getCellByPosition(1, 5).String=		EnderecoPlan125.Sheets.getByName("Planilha1").getCellByPosition(1, 1).String

PlanPedidos .Sheets.getByName("Planilha1").getCellByPosition(3, 5).String=EnderecoPlan125.Sheets.getByName("Planilha1").getCellByPosition(4, 2).String 

Assim ficaria mais fácil para colocar um comando for ou while.

@Amaral vc pode sim utilizar o .GetCellByPosition() no lugar de .GetCellRangeByName(), porém lembre-se de utilizar 1 para 1, ou seja, 3 colunas e 2 linha em uma planilha então deve utilizar 3 colunas e 2 linhas na outra planilha. Se vc colocar os campos como realmente ficarão no seu projeto final fica mais fácil de te ajudar, porque acima vc diz que quer lançar valores da planilha pedidos na planilha 125, mas no seu exemplo os campos tem nomes diferentes.

O problema é que são de arquivos distintos.

Sua ideia é ótima, porém os dados tem que saírem de 125.xls e irem para Pedidos.ods estou tentando inverter a sua sugestão.

@Amaral fiz a inversão da ideia para você, verifique os anexos na resposta, um dúvida, por quê utilizar documentos separados, poderia utilizar um arquivo só, ficaria mais leve, mais rápido e mais fácil.

Eu trabalho em um setor que recebe diversas planilhas iguais porém com nomes e informações distintas e, por meio de uma macro, leio todas elas identificando possíveis erros de preenchimentos. Existe uma planilha que recebe as informações das demais e faz essa verificação. Estou lendo diversos artigos mas eles não contemplam minha dúvida.

Eu já tinha pensado nisso, porém não consegui fazer para outras abas.
=‘file:///C:/Users/amaral.santos/Downloads/789.xls’#$Planilha1.C2 >> dá certo se o arquivo tem uma aba
=‘file:///C:/Users/amaral.santos/Downloads/789.xls’#$Amigo.C2 >>>não dá certo para outra aba no mesmo arquivo.

Funciona apenas para uma aba.
Para duas abas não funciona.
=‘file:///C:/Users/amaral.santos/Downloads/789.xls’#$Planilha1.C2 >> dá certo se o arquivo tem uma aba =‘file:///C:/Users/amaral.santos/Downloads/789.xls’#$Amigo.C2 >>>não dá certo para outra aba no mesmo arquivo.

Estou testando.

Ola @Amaral, quando der resposta, coloque o nome a quem se destina fica mais pratico. coloque o @ na frente do nome do usuário, assim se no cadastro estiver escolhido por aviso por email, será enviado

Acho que a resposta acima cabe a mim, fiz teste aqui com xls, e funciona normalmente.

Sobre outras abas, teria que indicar quais arquivos tem mais que uma aba e o nome delas. seriam mais variáveis…

Deu certo.
Muito obrigado.