Página 1 de 1

Importar linha da planilha especificada em célula

Enviado: 28 Mai 2018 às 12:46
por SandroLima
Boa tarde, galera do fórum.

Gostaria da ajuda de vocês na seguinte tarefa:

Tenho uma planilha que se chama "ATENDIMENTOS" e para ela precisaria importar alguns dados de células específicas de uma outra planilha dentro da mesma pasta.

Para que ela fizesse isso eu pensei em criar os campos "INSERIR NOME DA PLANILHA" (através de um lista suspensa), "Nº DA LINHA" e através do botão "IMPORTAR" executar o código para importar somente os valores de células específicas da planilha de origem e mantendo as fórmulas e formatação da planilha de destino. As demais células da planilha de destino ficam em branco mesmo e serão preenchidas manualmente.


Ah sim... a importação dos dados aconteceria sempre para a primeira linha da tabela na planilha de destino, portanto ao clicar no botão importar ele precisa gerar uma nova linha de cima da tabela e importar os dados da planilha de origem (no caso sempre a linha 1).

Seria mais ou menos isso...

Ao clicar no botão "IMPORTAR" da aba ATENDIMENTOS" ele inseriria uma linha no alto da tabela atendimentos (sempre geraria uma linha, no caso a linha 1, e deslocaria as demais para baixo) e importaria os dados de células específicas (nesse caso do exemplo da linha 49 da planilha "(LC) MARÇO" que foram mencionadas na célula F8 e F7, respectivamente, da aba "ATENDIMENTOS".

Gostaria que a célula F7 da aba "ATENDIMENTOS" fosse uma lista suspensabaseada no banco de dados com os nomes da planilhas de origem (que podem ir surgindo a medida que o projeto for se desenvolvendo - teria que ser dinâmico).

Uma vez feita a rotina de importação dos valores das células mencionadas, que ela ainda apagasse o "valor" das células F7 e F8 da aba "ATENDIMENTOS" para que ficasse disponível para o preenchimento de nova informação de dados a serem importados.

E sempre retornasse a seleção para a célula "D14" da linha 1 da tabela para que fosse realizado o preenchimento (agora manualmente) das demais células em branco dessa linha recém gerada.

Preenchi no exemplo do anexo como ficaria após a importação da "linha 49" da planilha "(LC) MARÇO".

Obrigado pela colaboração dos que puderem ajudar.

Re: Importar linha da planilha especificada em célula

Enviado: 30 Mai 2018 às 12:49
por SandroLima
Boa tarde, pessoal.

Alguém poderia me ajudar com esse problema???

Preciso muito.

Obrigado

Importar linha da planilha especificada em célula

Enviado: 30 Mai 2018 às 13:52
por gfranco
Boa tarde.
Sugiro postar um modelo que contemple uma aba (pelo menos) que exiba o cenário de onde serão importados os dados.

Re: Importar linha da planilha especificada em célula

Enviado: 30 Mai 2018 às 17:09
por SandroLima
Boa tarde nobre colega GFranco e demais colegas que puderem contribuir.

Havia anexado a planilha errada e acho que por isso não ficou clara a necessidade nesse trabalho.

Agora anexei a planilha correta e aproveitei para acrescentar uma rotina na via inversa que também pode se tornar útil na finalidade desse trabalho

Gostaria da ajuda de vocês na seguinte tarefa:

Tenho uma aba que se chama "ATENDIMENTOS" e para ela precisaria importar alguns dados de células específicas de outras planilhas dentro da mesma pasta.

Para que ela fizesse isso eu pensei em criar os campos :
1) "INSERIR NOME DA PLANILHA" (através de uma lista suspensa e essa lista suspensa deveria conter os nomes de todas as abas desta pasta e se possível que fosse dinâmica uma vez que novas abas serão criadas);
2) "Nº DA LINHA (ORIGEM)"
3) "Nº DA LINHA (DESTINO)", que por padrão deverá ser a linha Nº 1 da tabela "TB_Atendimentos" da aba "ATENDIMENTOS"

E através do botão "IMPORTAR DADOS" executar o código para importar somente os valores de células específicas da planilha de origem e mantendo as fórmulas e formatação da planilha de destino. As demais células da planilha de destino ficam em branco mesmo e serão preenchidas manualmente (observem que alguns campos não preenchidos na linha de origem, antes da importação, vem com o valor "0" para a linha de destino e eu precisaria eliminar isso deixando-os vazios como na linha de origem).

A importação dos dados aconteceria como padrão sempre para a primeira linha da tabela na planilha de destino (podendo ser alterada manualmente pelo usuário no campo da linha de destino). Portanto ao clicar no botão "IMPORTAR DADOS", ele precisaria inserir a nova linha contendo as informações e deslocar os dados das demais linhas para baixo.

Seria mais ou menos isso...

Ao clicar no botão "IMPORTAR DADOS" da aba ATENDIMENTOS" ele inseriria uma linha no alto da tabela atendimentos (sempre geraria uma linha, no caso a linha 1, ou outra informada pelo usuário, e deslocaria as demais linhas para baixo renumerando a ordem) e importaria os dados de células específicas (nesse caso do exemplo, dados contidos na linha 14 da planilha "(LC) MARÇO" que foram mencionadas na célula F8 e G8, respectivamente, da aba "ATENDIMENTOS".

Uma vez feita a dinâmica de importação dos valores das células mencionadas, que ela ainda apagasse o "valor" das células F8 e G8 da aba "ATENDIMENTOS" mantendo a informação apenas da célula H8 (no caso linha 1) como padrão, para que ficassem disponíveis para o preenchimento de nova informação de dados a serem importados.

E sempre retornasse a seleção para a célula da coluna D da nova linha inserida na tabela para que as demais informações das células em branco fossem preenchidas (manualmente) na linha recém criada.

Preenchi no exemplo do anexo como ficaria após a importação da "linha 14" da planilha "(LC) MARÇO".

A outra rotina também seria útil e deveria estar presente para cada nova aba criada a partir de cópia da aba "(LC) MODELO".

Ela realizaria o caminho inverso, EXPORTANDO os dados da aba atual para a aba "ATENDIMENTOS" ou outra selecionada pelo usuário através da lista suspensa. Nesse caso os dados exportados deveriam sempre ocorrer para a linha 1 da tabela que depois seria ordenada automaticamente quando preenchido o campo Atendimento/Pagamento da tabela "TB_Atendimentos" na aba "ATENDIMENTOS".

Da mesma forma, após inserir a nova linha com as informações que foram exportadas para a tabela "TB_Atendimentos", retornasse a seleção para a célula da coluna D da nova linha inserida na tabela para que as demais informações das células em branco fossem preenchidas (manualmente) na linha recém criada.

Envio a planilha com algumas informações contidas na mesma.

Obrigado pela colaboração dos que puderem ajudar.

Importar linha da planilha especificada em célula

Enviado: 31 Mai 2018 às 07:28
por gfranco
Bom dia.
Penso que seria mais produtivo manter uma única base de entrada de dados(como a tabela principal, por exemplo) e depois, utilizar-se de recursos como tabela dinâmica para fazer análises e estratificações.

Importar linha da planilha especificada em célula

Enviado: 31 Mai 2018 às 10:53
por SandroLima
Obrigado, amigo.

Vou continuar tentando... seria outra linha de estudo.

Essa seria minha realidade atual. Ainda não entendo de tabela dinâmica e estratificações. E essas abas "(LC)" do arquivo preciso enviar mês a mês.

Mas obrigado de qualquer maneira.

Importar linha da planilha especificada em célula

Enviado: 31 Mai 2018 às 21:10
por SandroLima
Boa tarde pessoal do fórum.

Podem me ajudar com essa atividade? É mesmo importante para o meu aprendizado e para ver quais os melhores caminhos dentro das possibilidades do Excel.

Gostaria da ajuda de vocês na seguinte tarefa:

Tenho uma aba que se chama "ATENDIMENTOS" e para ela precisaria importar alguns dados de células específicas de outras planilhas dentro da mesma pasta.

Para que ela fizesse isso eu pensei em criar os campos :
1) "INSERIR NOME DA PLANILHA" (através de uma lista suspensa e essa lista suspensa deveria conter os nomes de todas as abas desta pasta e se possível que fosse dinâmica uma vez que novas abas serão criadas);
2) "Nº DA LINHA (ORIGEM)"
3) "Nº DA LINHA (DESTINO)", que por padrão deverá ser a linha Nº 1 da tabela "TB_Atendimentos" da aba "ATENDIMENTOS"

E através do botão "IMPORTAR DADOS" executar o código para importar somente os valores de células específicas da planilha de origem e mantendo as fórmulas e formatação da planilha de destino. As demais células da planilha de destino ficam em branco mesmo e serão preenchidas manualmente (observem que alguns campos não preenchidos na linha de origem, antes da importação, vem com o valor "0" para a linha de destino e eu precisaria eliminar isso deixando-os vazios como na linha de origem).

A importação dos dados aconteceria como padrão sempre para a primeira linha da tabela na planilha de destino (podendo ser alterada manualmente pelo usuário no campo da linha de destino). Portanto ao clicar no botão "IMPORTAR DADOS", ele precisaria inserir a nova linha contendo as informações e deslocar os dados das demais linhas para baixo.

Seria mais ou menos isso...

Ao clicar no botão "IMPORTAR DADOS" da aba ATENDIMENTOS" ele inseriria uma linha no alto da tabela atendimentos (sempre geraria uma linha, no caso a linha 1, ou outra informada pelo usuário, e deslocaria as demais linhas para baixo renumerando a ordem) e importaria os dados de células específicas (nesse caso do exemplo, dados contidos na linha 14 da planilha "(LC) MARÇO" que foram mencionadas na célula F8 e G8, respectivamente, da aba "ATENDIMENTOS".

Uma vez feita a dinâmica de importação dos valores das células mencionadas, que ela ainda apagasse o "valor" das células F8 e G8 da aba "ATENDIMENTOS" mantendo a informação apenas da célula H8 (no caso linha 1) como padrão, para que ficassem disponíveis para o preenchimento de nova informação de dados a serem importados.

E sempre retornasse a seleção para a célula da coluna D da nova linha inserida na tabela para que as demais informações das células em branco fossem preenchidas (manualmente) na linha recém criada.

Preenchi no exemplo do anexo como ficaria após a importação da "linha 14" da planilha "(LC) MARÇO".

OBS: A aba "LC MODELO" servirá de modelo para outras planilhas no decorrer do ano ("LC ABRIL", "LC MAIO", "LC JUNHO" etc). Farei uma cópia dela para os meses seguintes.

A outra rotina também seria útil e deveria estar presente para cada nova aba criada a partir de cópia da aba "(LC) MODELO".

Ela realizaria o caminho inverso, EXPORTANDO os dados da aba atual para a aba "ATENDIMENTOS" ou outra selecionada pelo usuário através da lista suspensa. Nesse caso os dados exportados deveriam sempre ocorrer para a linha 1 da tabela que depois seria ordenada automaticamente quando preenchido o campo Atendimento/Pagamento da tabela "TB_Atendimentos" na aba "ATENDIMENTOS".

Da mesma forma, após inserir a nova linha com as informações que foram exportadas para a tabela "TB_Atendimentos", retornasse a seleção para a célula da coluna D da nova linha inserida na tabela para que as demais informações das células em branco fossem preenchidas (manualmente) na linha recém criada.

Envio a planilha com algumas informações contidas na mesma.

Obrigado pela colaboração dos que puderem ajudar.

Re: Importar linha da planilha especificada em célula

Enviado: 01 Jun 2018 às 13:32
por SandroLima
Boa tarde.

Alguém poderia me ajudar ?

Desde já obrigado.

Re: Importar linha da planilha especificada em célula

Enviado: 01 Jun 2018 às 17:39
por osvaldomp
Veja se o código abaixo pode ajudar.
Código: Selecionar todos
Sub ReplicaDados()
 If ActiveSheet.Name = "ATENDIMENTOS" Then
  Rows([H8] + 13).Insert
  Cells([H8] + 13, 4).Resize(, 5).Value = Sheets([F8].Value).Cells([G8], 1).Resize(, 5).Value
  [F8:H8] = ""
 Else
  Sheets("ATENDIMENTOS").Rows(14).Insert
  Sheets("ATENDIMENTOS").Cells(14, 5).Resize(, 4).Value = Cells([F4], 2).Resize(, 4).Value
  [F4] = ""
 End If
End Sub
obs.
1. instale o código acima em um módulo comum e vincule-o ao botão IMPORTAR DADOS da planilha ATENDIMENTOS e aos botões EXPORTAR DADOS das demais planilhas
2. na planilha ATENDIMENTOS , em F8 você colocou (LC) MARÇO, porém o nome da planilha é LC) MARÇO ~~~> corrija (a propósito qual a razão do parêntese? porque não LC MARÇO?)
3. o código parece funcionar apesar da existência de células mescladas (sugestão - não mescle células, pois são desnecessárias, inúteis e podem provocar erros em macros e em fórmulas)
4. considerei que a planilha destino será sempre a planilha ATENDIMENTOS, se não for então você precisa informar a linha da planilha destino
5. nas células em que você quer uma lista com os nomes das planilhas, sugiro que você aplique Validação de Dados com base na tabela já existente no intervalo B3:B14 da planilha BANCO DE DADOS

funcionamento
A. clicando em IMPORTAR DADOS - o código irá:
1. inserir uma linha na planilha ATENDIMENTOS, conforme indicado em H8
2. replicar na linha inserida os dados da planilha indicada em F8, linha em G8 (de CLIENTE / FORNECEDOR até DATA NASC.)
3. limpar F8:H8
B. clicando em EXPORTAR DADOS - o código irá:
1. inserir uma linha na linha 14 da planilha ATENDIMENTOS
2. replicar na linha inserida os dados da planilha ativa, linha em F8 (de CLIENTE / FORNECEDOR até DATA NASC.)
3. limpar F8

Re: Importar linha da planilha especificada em célula

Enviado: 03 Jun 2018 às 12:50
por SandroLima
Muito obrigado pela ajuda, Osvaldo.

Já foi de grande auxílio para o que preciso.

Vou fazer uns testes de adequações para os demais campos das planilhas e por isso ainda não vou trancar o tópico.

Logo volto a chamar se preciso for.

Mais uma vez obrigado.