Notifications
Clear all

Transportar Informações e verificar se os dados já existem

6 Posts
3 Usuários
0 Reactions
1,739 Visualizações
(@insanetm)
Posts: 51
Trusted Member
Topic starter
 

Boa tarde pessoal.

Bom, estou com 2 problemas... o primeiro é ser leigo em VBA (iniciante) e o segundo é o seguinte:

Tenho uma planilha onde existem aproximadamente 30 colunas...

O que ocorre hoje?
Esta planilha é alimentada manualmente toda vez que chegam novos armários.

O que eu preciso?
Toda vez que chegam novos armários, é divulgado uma lista com todas as configurações desses armários o que totaliza 1 linha e 6 colunas por armário.
Preciso copiar e colar essas linhas na planilha de origem de forma automática e já verificando se não há essas informações na planilha de destino (pra evitar linhas duplicadas).

Ex.:

------BC-----Regional-----Cidade-----OBRA-----Conclusão (mês e ano)-----Facilidades Construídas (essas são as colunas)
--100215-------CO--------Curitiba--CTB01_A01------05/01/2014-----------------1200------------------(essas são as linhas que devo transpor do local de origem)

Necessito destes códigos em VBA.

O que irei fazer?
Criar uma macro que acesse a planilha de origem sem abrir, copia as informações, verifique na planilha de destino se já existem esses armários, caso não, cole as informações nas colunas correspondentes sempre na última linha.

As 2 planilhas estão em unidades diferentes na rede.

Aguardo retorno e desde já agradeço a atenção.

 
Postado : 05/12/2013 12:36 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Por favor, poste seu arquivo modelo!

Att

 
Postado : 05/12/2013 12:40 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

InsaneTM,

Boa Tarde!

São necessários alguns detalhes:
1 - Caminho completo da rede alusivo ao arquivo de origem
2 - Caminho completo da rede alusivo ao arquivo de destino
3 - Nome completo do arquivo de origem
4 - Nome completo do arquivo de destino
5 - Nome da aba onde estão os dados do arquivo de origem
6 - Nome da aba onde estão os dados do arquivo de destino
7 - Número da linha inicial (inclusive cabeçalho) onde começam os dados do arquivo de origem
8 - Número da linha inicial (inclusive cabeçalho) onde começam os dados do arquivo de destino
9 - Coluna inicial onde começam os dados do arquivo de origem
10 - Coluna inicial onde começam os dados do arquivo de destino
11 - Porque o arquivo de origem não deve ser aberto? Como pegar os dados de um arquivo fechado?
12 - O arquivo de origem com as informações dos armários sempre será o mesmo? Terá sempre o mesmo nome?
13 - O arquivo de origem só tem uma linha?
14 - Porque só precisa copiar 6 colunas se sua planilha de destino tem 30 colunas?
15 - O arquivo de destino sempre será um acumulador de dados das informações que são copiadas do arquivo de origem? Não ficará muito grande?
16 - Existe um código que identifique unicamente cada armário?
17 - A pesquisa feita no arquivo de destino deve ser por esse código (se existir) ou por qual dado?

 
Postado : 05/12/2013 12:53 pm
(@insanetm)
Posts: 51
Trusted Member
Topic starter
 

Envio em anexo...

Esta planilha está marcado com uma seta em cima de cada coluna que deverá transpor as informações da outra planilha a que me referi como origem.

 
Postado : 05/12/2013 12:54 pm
(@insanetm)
Posts: 51
Trusted Member
Topic starter
 

Boa Tarde!

São necessários alguns detalhes:

Segue-se as repostas.

1 - Caminho completo da rede alusivo ao arquivo de origem
W:Engenharia e OperaçõesImplantaçãoPlanejamento e ControleEntrega de FacilidadesBanco de dadosRai-(data do dia).xls

2 - Caminho completo da rede alusivo ao arquivo de destino
W:Engenharia e OperaçõesImplantaçãoPlanejamento e ControleEntrega de FacilidadesBanco de dadosEntrega de Facilidades 2014.xlsm

3 - Nome completo do arquivo de origem
RAI-(data do dia da divulgação da lista. Ex: RAI-05-12-2013

4 - Nome completo do arquivo de destino
Consta no anexo acima

5 - Nome da aba onde estão os dados do arquivo de origem
RAIM e outra como RAIG (só terá essas 2 abas)

6 - Nome da aba onde estão os dados do arquivo de destino
RAIM e outra RAIG

7 - Número da linha inicial (inclusive cabeçalho) onde começam os dados do arquivo de origem
Linha 2

8 - Número da linha inicial (inclusive cabeçalho) onde começam os dados do arquivo de destino
Linha 3

9 - Coluna inicial onde começam os dados do arquivo de origem
Coluna A

10 - Coluna inicial onde começam os dados do arquivo de destino
Coluna inicial será A

11 - Porque o arquivo de origem não deve ser aberto? Como pegar os dados de um arquivo fechado?
Não há restrições para a abertura do arquivo... mas como esse arquivo deverá ser consultado só para transpor estas informações, acho mais comodo clicar em um botão "Atualizar" e transferir tais informações.

12 - O arquivo de origem com as informações dos armários sempre será o mesmo? Terá sempre o mesmo nome?
sim, sempre será RAIM e RAIG (Metálico e Gpon)

13 - O arquivo de origem só tem uma linha?
O arquivo de Origem pode possuir um numero de linhas limitado mas não estipulado, mas o que me interessará são as 6 colunas somente que devem ser transportada para as mesmas colunas na entrega...

14 - Porque só precisa copiar 6 colunas se sua planilha de destino tem 30 colunas?
Porque as demais colunas vão ser preenchidas por outra planilha mais tarde. Tendo esta aqui como modelo, consigo facilmente integrar as outras.
15 - O arquivo de destino sempre será um acumulador de dados das informações que são copiadas do arquivo de origem? Não ficará muito grande?
Sim, é um acumulador de dados do qual temos informações desde 2010

16 - Existe um código que identifique unicamente cada armário?
Existe, é o número do BC (código único)

17 - A pesquisa feita no arquivo de destino deve ser por esse código (se existir) ou por qual dado?
Sim, Pelo BC!

 
Postado : 05/12/2013 1:08 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

InsaneTM,

Boa Noite!

Bem, abaixo segue seu arquivo, após a inserção da procedure que faz o que você pediu, de acordo com as respostas que você deu às minhas perguntas. Desse modo, para testar, basta clicar no botão copiar dados que criei na aba RAIM do arquivo Entrega de Facilidades_2014.xlsm.

O que o código faz:
1 - Primeiramente abre o arquivo RAI do dia com as informações (essa abertura é transparente para o usuário pois fica invisível. Para montar o nome desse arquivo (pois tem a data no final) e abrí-lo existe uma função que pega a data atual do relógio do micro. Se essa data estiver desatualizada, o arquivo correto não será aberto.
2 - Depois o código VBA procura na aba RAIM do arquivo RAI+data do dia.xls, os códigos existentes nela que não existem na aba RAIM do arquivo Entrega de Facilidades_2014.xlsm e, se existirem, copias as seis colunas para os locais apropriados do arquivo de destino (dentro da aba RAIM).
3 - Depois o código VBA procura na aba RAIG do arquivo RAI+data do dia.xls, os códigos existentes nela que não existem na aba RAIG do arquivo Entrega de Facilidades_2014.xlsm e, se existirem, copias as seis colunas para os locais apropriados do arquivo de destino (dentro da aba RAIG).
4 - Finalmente, os arquivos são salvos e o arquivo RAI + data do dia.xls é fechado.

DETALHES:
Como disse acima, fiz exatamente de acordo com suas explicações e respostas, todavia, observei alguns detalhes importantes que acho necessário mencionar aqui:
1 - Na sua mensagem inicial você diz: "As 2 planilhas estão em unidades diferentes na rede.", no entanto, nas respostas dadas, o caminho do arquivo de destino e do arquivo de origem são exatamente os mesmos. O código foi feito dessa forma.
2 - No arquivo que você anexou (Entrega de Facilidades_2014.xlsm), tinha duas abas: dashboard e Entrega de Facilidades 2014, no entanto, nas respostas dadas, você informa que as abas onde estão os dados do arquivo de destino se chamam RAIM e RAIG. O código foi feito desse modo.
3 - Quando perguntei "12 - O arquivo de origem com as informações dos armários sempre será o mesmo? Terá sempre o mesmo nome?" você respondeu "sim, sempre será RAIM e RAIG (Metálico e Gpon)", no entanto quando perguntei "3 - Nome completo do arquivo de origem" você respondeu "RAI-(data do dia da divulgação da lista. Ex: RAI-05-12-2013". Assim fiquei em dúvida. Todavia, fiz de maneira que o nome sempre será RAI + data do dia.xls, com duas abas (uma chamada RAIM e outra chamada RAIG). Não entendi o que é esse "Metálico e Gpon".
4 - Não importa o número de linhas que tenha o arquivo de origem. Fiz de modo a pegar sempre o último código (Coluna A) existente na coluna.

Bom, espero que seja isso e que possa lhe ser útil.

 
Postado : 06/12/2013 8:17 pm