Atualização automática de vínculo

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Atualização automática de vínculo

Mensagempor RAMZERO » Sex Jun 08, 2018 1:37 pm

Boa tarde pessoal

Tendo 2 planilhas abertas, gostaria de copiar e colar os dados de uma na outra (vínculo), porém os dados da planilha "fonte" não estão todos lá, eles vão sendo preenchidos

Tem algum jeito de já deixar "pré colado" uma range maior, selecionando também as células que ainda estão em branco, para que depois, quando vier a ter novos dados preenchidos na planilha fonte, automaticamente já apareça também na planilha "final"?

No anexo já deixei copiado e colado uma range maior, além das células que contém dados, mas mesmo assim, se inserir novos dados na planilha fonte, nada acontece na final (notem que selecionei de A1:G20)

Gostaria se possível não fosse usado tempo para verificar atualizações da planilha fonte. Exemplo: a cada 1 minuto verifique se tem dados novos

Pode ser usado VBA se for preciso

Obrigado
Você não está autorizado a ver ou baixar esse anexo.
RAMZERO
Membro
Membro
 
Mensagens: 117
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 67 times
Have thanks: 3 times

{ SO_SELECT }

Re: Atualização automática de vínculo

Mensagempor wagner » Sex Jun 08, 2018 6:23 pm

RAMZERO<

Boa noite!

Se entendi corretamente, o que você quer é perfeitamente possível apenas com a vinculação entre os dois arquivos. Abri seus dois arquivos (Pasta1.xlsx e Pasta2.xlsx), na aba Plan1 do arquivo Pasta2.xlsx, na célula B10 (destacada em amarelo) inseri a fórmula =[Pasta1.xlsx]Plan1!$B$7 para que ela fique vinculada com a célula B7 da aba Plan1 do arquivo Pasta1.xlsx e na célula C12 (também destacada em amarelo) da aba Plan1 do arquivo Pasta2.xlsx, inseri a fórmula =SE([Pasta1.xlsx]Plan1!$C$11<>"";[Pasta1.xlsx]Plan1!$C$11;"") para que ela fique vinculada a célula C11, da aba Plan1 do arquivo Pasta1.xlsx. Note que a célula C11 do arquivo Pasta1.xlsx está vazia e, para que não fique aparecendo um 0 (zero) na célula C12 do arquivo Pasta2.xlsx, eu coloquei na fórmula também um SE.

Pois bem, sempre que se digita qualquer coisa Pasta1.xlsx, em B7 ou C11, automaticamente esses valores aparecem em B10 e C12 do arquivo Pasta2.xlsx, independente das células do arquivo Pasta1.xlsx terem ou não valores.

Veja se é assim.
Você não está autorizado a ver ou baixar esse anexo.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel

For this post the author wagner thanked:
RAMZERO (Ter Jun 12, 2018 8:57 pm)
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3920
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 65 times
Have thanks: 1681 times

Re: Atualização automática de vínculo

Mensagempor RAMZERO » Ter Jun 12, 2018 8:26 am

Fala wagner, bom dia!

Sim é isso, você captou o que eu precisava

Porém há uma diferença, quando eu abro os dois arquivos, para quando abro um deles (Pasta1), depois abro outra instância do Excel e por ela vou em arquivo abrir e busco o outro (Pasta2)

Quando faço da segunda forma aparece na fórmula o caminho do arquivo no disco e mesmo inserindo o dado novo na Pasta1 a Pasta2 não atualiza

Quando eu abro os dois arquivos juntos funciona perfeitamente e fórmula aparece assim: =SE([Pasta1.xlsx]Plan1!$C$11<>"";[Pasta1.xlsx]Plan1!$C$11;"")

Quando abro um deles, depois abro outra instância do Excel e por ela vou em arquivo abrir, a planilha não funciona e a fórmula aparece assim =SE('C:\Users\user\Desktop\[Pasta1.xlsx]Plan1'!$C$11<>"";'C:\Users\user\Desktop\[Pasta1.xlsx]Plan1'!$C$11;"")

Sabe porquê e como fazer funcionar no segundo caso?

Obrigado
RAMZERO
Membro
Membro
 
Mensagens: 117
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 67 times
Have thanks: 3 times

Re: Atualização automática de vínculo

Mensagempor wagner » Ter Jun 12, 2018 8:44 am

RAMZERO,

Bom dia!

Infelizmente, não sei.
Se a resposta foi útil para você, por gentileza, Amigo, clique na mãozinha ao lado direito da ferramenta CITAR, no canto superior direito.

Atenciosamente
Wagner Morel
Avatar do usuário
wagner
Moderador
Moderador
 
Mensagens: 3920
Registrado em: Sáb Out 20, 2012 12:49 pm
Localização: Fortaleza - CE
Has thanked: 65 times
Have thanks: 1681 times

Re: Atualização automática de vínculo

Mensagempor RAMZERO » Ter Jun 12, 2018 8:58 pm

Mesmo assim obrigado wagner, foi de grande ajuda

Alguém tem uma ideia de como faço funcionar?

Obrigado
RAMZERO
Membro
Membro
 
Mensagens: 117
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 67 times
Have thanks: 3 times

Re: Atualização automática de vínculo

Mensagempor RAMZERO » Qui Jun 14, 2018 7:41 pm

Up!
RAMZERO
Membro
Membro
 
Mensagens: 117
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 67 times
Have thanks: 3 times

Re: Atualização automática de vínculo

Mensagempor EdsonBR » Sáb Jun 16, 2018 12:22 am

RAMZERO, boa noite

Quando vc abre o outro arquivo em outra instância, as pastas de trabalho não compartilham a porção de memória correspondente, portanto não se atualizam (no Stack Overflow há uma discussão a esse respeito).

Para contornar isso, logo após alterar os dados na Pasta1 (a dos dados) vc precisaria salvá-la primeiro para então ir na Pasta2 (a das fórmulas) e na Guia Dados>Grupo Conexões>Editar Links>Atualizar Valores.

Mas qual o motivo de ter de abrir em duas instâncias separadas?
Avatar do usuário
EdsonBR
Membro
Membro
 
Mensagens: 443
Registrado em: Qui Nov 05, 2015 11:43 pm
Localização: Joinville, SC
Has thanked: 89 times
Have thanks: 258 times

Re: Atualização automática de vínculo

Mensagempor RAMZERO » Sáb Jun 16, 2018 4:01 pm

Fala EdsonBR, boa tarde, tudo bem?

EdsonBR escreveu:Mas qual o motivo de ter de abrir em duas instâncias separadas?


Porque preciso deixar uma parte do código rodando com "total atenção", pois recebo dados externos, que são perdidos se não trata-los o mais rápido possível e enquanto meu código inteiro roda, acredite, às vezes acontece de que enquanto o código está rodando, chegam novos dados e quando o código termina e fica pronto pra rodar novamente, aqueles dados que chegaram enquanto o código estava rodando se perde!

Levantei essa bola em outro tópico e me disseram que isso se chama threading, e que no VBA Excel, não é possível fazê-lo

Se eu abro junto (compartilhando a porção de memória correspondente) é como se eu deixasse todo o código em uma única pasta de trabalho e não resolve meu problema

Já me disseram pra melhorar o código, já fiz isso inserindo: Application.ScreenUpdating = False, ajudou muito do que estava, mas ainda assim não foi o suficiente

Então em pesquisas e testes aqui, notei que se eu abrir em duas instâncias de Excel, eu meio que "forço" o sistema fazer o tal threading, pois sendo nativo o multithreading no sistema operacional, acreditei que poderia dar certo, e resolveu e muito o problema, só que surgiu esse agora, de precisar fazer a vinculação do dado recebido em um arquivo (o qual sé está com a parte do código que precisa ficar "atento" prioritariamente) do outro que não precisa ser assim tão "ágil"

Aparentemente encontrei uma forma aqui mas estou testando ainda, mas se tiver uma solução te agradeço

EdsonBR escreveu:logo após alterar os dados na Pasta1 (a dos dados) vc precisaria salvá-la primeiro


Tem como fazer sem precisar ficar salvando?

Outra pergunta, tem como deixar automático esse processo de atualizar valores? (Guia Dados>Grupo Conexões>Editar Links>Atualizar Valores)
De preferência não usando divisões de tempo Ex: Atualizar a cada 10 segundos

Obrigado
RAMZERO
Membro
Membro
 
Mensagens: 117
Registrado em: Sex Out 06, 2017 3:54 pm
Has thanked: 67 times
Have thanks: 3 times


Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes