Importar dados com o VBA no Excel | Excelmax Soluções e Controles

quarta-feira, dezembro 29, 2010

Importar dados com o VBA no Excel

Importar dados com o VBA no Excel    

    Importar dados para uma determinada planilha do Excel é uma tarefa que muitas pessoas fazem todos os dias. Isto pode ser feito de várias maneiras.
    Esta postagem trás algumas explicações e exemplos referente a este assunto (solicitação e sugestão de meu amigo de vários anos: Eduardo Ribeiro).
    A importação de dados de um outro arquivo (planilha, bloco de notas (txt), ou outro tipo de arquivo qualquer), pode ser feito através de fórmulas ou manualmente copiando e colando os dados. Mas isto demanda tempo e, nem sempre é possível de ser feito (destas formas).
    Uma das maneiras mais fáceis, rápida e que funciona bem, é a importação via programação (Macros/VBA).
    A primeira coisa a ser feita, é observar os dados no arquivo, para que possamos planejar e decidir qual a melhor forma que o mesmo será importado. Em nosso exemplo, utilizaremos um arquivo de texto (txt), conforme vemos na figura abaixo.


excel, vba, excelmax, importar, txt
       Agora, podemos gravar a macro para importar os dados. Para fazer isso, clique na guia 'Desenvolvedor' e, em seguida, em 'Gravar Macro'. Damos um nome a macro e clicamos em 'OK'.

importar, excel, vba
   













    Na guia 'Dados', no grupo 'Obter Dados Externos', clicamos em 'De Texto'. Encontramos o arquivo que contém os dados a serem importados e confirmamos a importação. Seguimos as orientações do Assistente de importação do Excel e, por fim, podemos finalizar a gravação da Macro.

importar, excel, macro
















    A figura ao lado, contém o código da macro que foi gravado com a importação dos dados.
    Note que a parte destacada em vermelho é o caminho onde o arquivo que contém os dados está gravado. A partir desde caminho/nome, é que é feita a importação.
    Visto que no exemplo citado, o caminho é fixo, o arquivo com os dados sempre deverá estar no mesmo local, caso contrário, quando a macro for executada será gerado um erro porque o arquivo não será encontrado.
    Vejamos outro problema que podemos ter: imagine que você trabalhe numa empresa que contenha alguma filiais. Cada umas delas (Filiais), grava os arquivos em locais diferentes. Com certeza, ocorrerá problemas quando a macro for executada.
    Outro problema que podemos enfrentar, é que muitas vezes precisamos importar não só um arquivo, mas dois ou mais para que determinada informação/planilha seja elaborada.
    Além disso, podem surgir outras situações, fazendo com que o nosso exemplo não funcione. Para resolver isso, precisamos preparar algo que permita que o usuário escolha o caminho e o arquivo(com nome diferente) a ser importado. Através de um 'userform' e 'macros', podemos fazer isto facilmente.
    A figura abaixo mostra como isso pode ser feito.
  1. Userform: o Userform (1), conterá o caminho (no campo 'caminho') onde o arquivo a ser importado se encontra.
  2. Código de pesquisa: este código (2) abre uma caixa onde podemos procurar o arquivo para importação.
  3. Código de importação: este código (3) faz a importação do arquivo (de acordo com o caminho e o nome do arquivo).
importar, excel, macro

















   


    No link abaixo, pode se feito o download do aquivo de exemplo.

    Link: Importar_Dados
    Link arquivo TXT de exemplo para importação: Vendas.txt

      + 1 exemplo para download: Importar dados Com Excel & VBA

    Em caso de alguma dúvida, favor postar comentário.

3 comentários:

  1. Realmente muito útil e necessária essas importações. Desta forma podemos importar dados de sistemas fechados, para manipula-los e tratá-los de forma mais prática e eficiente diretamente no excel.

    Muito boa essa postagem.

    Abraços.

    MF

    ResponderExcluir
    Respostas
    1. Professor como ficaria esta solução, para não apagar os dados já importados e indo importando abaixo.

      Excluir
    2. Olá Eduardo. Da maneira que esta macro foi feita, não permitiria fazer o que vc precisa. É preciso fazer diferente. Posso fazer uma vídeo aula se vc enviar um email sugerindo: ivairferrari@gmail.com

      Excluir

Seja um participante desta comunidade !
Deixe aqui seu comentário e/ou sugestão.
Obrigado !

Ivair Claudio Ferrari