sábado, 24 de maio de 2014

1. MANIPULANDO ARQUIVOS COM O VBA - INTERMEDIÁRIO

1. MANIPULANDO ARQUIVOS COM O VBA
            
          My friends, vamos tratar de um assunto que é, digamos, “importantibilissimo” para profissional que deseja trabalhar com a programação VBA.
            Não serão poucas as vezes que você precisará varrer diretórios à procura de arquivos que precisam ser abertos ou pelo menos catalogados.
            Se ficou difícil entender, deixa eu dar um exemplo: Imagine que você precise criar um código para o José Firmino, que é um gerente de filiais de uma grande empresa. Imagine que ele receba todos os meses, arquivos de relatório de vendas de todas as filiais, que são 200, eu disse 200. Receber 2 ou 3 arquivos e abri-los para ver o resultado seria mole, não sendo necessário confeccionar um código VBA para isto. Mas agora, 200, a história é outra.
            Sendo assim, vamos criar o procedimento que abrirá os arquivos no diretório que você salvou e capturará os totais das filiais mais rápido que imediatamente. Então, prestenção!

Crie uma planilha com esta e nomeie “Vendas Filiais”



            Você precisará ainda, de arquivos no diretório que criamos para que os mesmos sejam abertos.



No meu caso, fiz 5 arquivos que ficaram com este conteúdo.


            Inseri os valores em cada arquivo de 1000 a 5000, sempre na célula B3.
            Agora vamos usar o código abaixo para abrirmos os arquivos e capturar o total de vendas de cada filial.
Sub TotalFiliais()
     Dim NomArq                                          'declaramos a variável
'Usamos o "Dir" para identificar no diretório os arquivos que queremos abrir.
'Perceba que usei um "*.xlsx". Aqui, estou querendo dizer que não nos interessa o que vem antes da extensão.
'logo, vamos abrir apenas os arquivos com extensão xlsx. Obviamente, faço isto porque os nomes dos arquivos
'são diferentes, porém, a extensão é a mesma.
NomArq = Dir(CamPad & "*.xlsx")
Do While NomArq <> ""                               'agora percorremos todos os arquivos no diretório à procura do que nos interessa
    Workbooks.Open CamPad & NomArq                  'se acharmos, vamos abri-lo.
   
    'Após abri-lo, precisamos pegar a informação que queremos e tranferí-la para o nosso relatório.
    Lin = ThisWorkbook.Sheets("Vendas Filiais").Cells(Rows.Count, 1).End(xlUp).Row + 1 'capturamos a última linha não preenchida
   
    With ThisWorkbook.Sheets("Vendas Filiais")
        .Cells(Lin, 1) = ActiveWorkbook.Path        'capturamos o diretório do arquivo
        .Cells(Lin, 2) = ActiveWorkbook.FullName    'capturamos o endereço completo
        .Cells(Lin, 3) = ActiveWorkbook.Name        'capturamos o nome do arquivo
        .Cells(Lin, 4) = ActiveWorkbook.ActiveSheet.Range("B2") 'e finalmente, o valor
       
        'criamos aqui um Hyperlink para facilitar os nossos futuros acessos às pastas e os arquivos.
        .Hyperlinks.Add Anchor:=Cells(Lin, "A"), Address:=Cells(Lin, "A")
        .Hyperlinks.Add Anchor:=Cells(Lin, "B"), Address:=Cells(Lin, "B")
   
    End With
   
    Workbooks(NomArq).Close                     'fechamos o arquivo, pois já pegamos a informação que queríamos
   
    NomArq = Dir            'chamamos o próximo arquivo
Loop
End Sub

            Para facilitar a compreensão do código, coloquei o mesmo em vermelho e os comentários em verde.
            Uma observação que jugo importante, refere-se ao Hyperlink que criamos nas coluna “A” e “B”. E para que fizemos isto? Pense! Se já rodamos a macro, por que não pegarmos o endereço do diretório onde o arquivo está para abrirmos os arquivos de forma bem simples e rápida.
            Após rodarmos o código, o resultado será este.


            Muito tranquilo, não?! Nos vemos na próxima lição!


Para acessar o curso completo Clique aqui 

Nenhum comentário: