Pergunte aqui
1

Dados Externos

perguntadas 2019-07-04 19:28:51 +0200

imagem do gravatar de Amaral

updated 2019-07-15 01:26:37 +0200

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. Descrição da imagem 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.

C:\fakepath\2369.xls

C:\fakepath\125.xls

C:\fakepath\Pedido.ods

Erro identificado no vínculo. Descrição da imagem

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

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.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-07-04 19:45:18 +0200 )editar

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

imagem do gravatar de AmaralAmaral ( 2019-07-04 23:00:43 +0200 )editar

@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.

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-07-04 23:34:28 +0200 )editar

@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....

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-07-09 03:35:14 +0200 )editar

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

C:\fakepath\Amaral.ods

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

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-07-09 04:01:34 +0200 )editar

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.

imagem do gravatar de AmaralAmaral ( 2019-07-09 05:01:28 +0200 )editar

2 Respostas

0

respondidas 2019-07-11 20:54:19 +0200

updated 2019-07-14 16:35:41 +0200

Ola @Amaral, a base é o Comentário que fiz acima, porém agora tem Macro.

No arquivo Pedidos em C1, preencher o caminhos dos arquivos dos produtos.

Atenção: Tinha colocado Botão para acionar a macro, mas algo da errado, com a figura dá certo.

C:\fakepath\Amaral.ods

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

Complemento

Segue arquivos utilizando Área nomeada nos arquivos Produto e Vinculo a dados externos na planilha PedidosVinculados, a atualização é automática ( cada 1 minuto ), o arquivo produto alterado deve estar salvo.

C:\fakepath\Amaral .ods, versão atualizada.

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

editar assinalar como ofensivo Excluir Link mais

Comentários

Bom dia @Gilberto. Alterando e salvando dados na planilhas 125.ods, os vínculos não são atualizados em Pedidos.ods, porém na planilha PedidosVinculados.ods ocorre a atualização. Achei a macro do arquivo PedidosVinculados.ods sensacional, estou estudando-a para compreender. Não sei qual mágica fizestes mas ficou muito bom pois não tem, aparentemente, nenhum vínculo com 125.ods. Na minha planilha os vínculos só são alterados se eu reabrir o arquivo Pedido.ods. Estou tentado utilizar o comando refresh().

imagem do gravatar de AmaralAmaral ( 2019-07-14 18:58:57 +0200 )editar

Ola @Amaral, o arquivo PedidosVinculados não usa macros. ( A macro é da solução anterior )

Por exemplo: no arquivo 125 as células da área A2:F2 esta nomeado Prod125.

No arquivo PedidosVinculados utilizei Planilha/Vincular a dados externos e vinculei o arquivo 125 a área nomeada Prod125, com atualização 60 segundos.

Caso queira, pode entrar em contato direto, veja aqui: https://wiki.documentfoundation.org/U...

imagem do gravatar de Gilberto SchiavinattoGilberto Schiavinatto ( 2019-07-14 21:12:28 +0200 )editar
0

respondidas 2019-07-09 13:22:35 +0200

imagem do gravatar de Júnio Vieira

updated 2019-07-11 19:12:04 +0200

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.

C:\fakepath\125.ods

C:\fakepath\Pedidos.ods

Dúvidas, estamos à disposição!

editar assinalar como ofensivo Excluir Link mais

Comentários

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.

imagem do gravatar de AmaralAmaral ( 2019-07-09 14:08:38 +0200 )editar

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.

imagem do gravatar de AmaralAmaral ( 2019-07-09 17:04:12 +0200 )editar

@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.

imagem do gravatar de Júnio VieiraJúnio Vieira ( 2019-07-10 15:59:19 +0200 )editar

O problema é que são de arquivos distintos.

imagem do gravatar de AmaralAmaral ( 2019-07-11 00:52:48 +0200 )editar

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.

imagem do gravatar de AmaralAmaral ( 2019-07-11 15:46:35 +0200 )editar

@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.

imagem do gravatar de Júnio VieiraJúnio Vieira ( 2019-07-11 19:13:30 +0200 )editar

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.

imagem do gravatar de AmaralAmaral ( 2019-07-11 21:46:58 +0200 )editar

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.

imagem do gravatar de AmaralAmaral ( 2019-07-11 22:16:44 +0200 )editar

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.

imagem do gravatar de AmaralAmaral ( 2019-07-11 22:27:41 +0200 )editar

Estou testando.

imagem do gravatar de AmaralAmaral ( 2019-07-11 22:35:20 +0200 )editar
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-07-04 19:28:51 +0200

Lidas: 59 vezes

Última atualização: 2 dias atrás