Etapa importante ao desenvolver Softwares no Excel & VBA | Excelmax Soluções e Controles

quarta-feira, outubro 10, 2012

Etapa importante ao desenvolver Softwares no Excel & VBA


excel, vba, macro, software, importante

Etapa importante ao desenvolver Softwares no Excel & VBA

Quando desejamos criar um software utilizado o VBA no Excel, precisamos saber e entender várias coisas que precisarão ser feitas durante o processo de criação.

No meu ponto de vista, uma das coisas mais importantes, quando programamos no Excel, é saber se movimentar na planilha e entre as planilhas. 

Desta forma, fica mais fácil desenvolver o restante pois, saberemos como tratar os dados: onde buscar, gravar, alterar, eliminar e calcular os dados (entre outras tarefas).

Existem muitas maneiras (comandos) que permitem que façamos isto. O importante é sabermos exatamente o que queremos fazer para que possamos fazer da melhor maneira possível.
    
Para que possamos nos movimentar dentro de uma planilha, devemos criar e utilizar variáveis (Um local de armazenamento nomeado que pode conter dados, os quais podem ser modificados durante a execução do programa). Veja o exemplo abaixo:

        Sub Macro1( )
            i = 1
            Do Until i > 100000   'Faz repetições até q/ 'i' seja maior que 100000
                i = i + 1
            Loop
            Msgbox "Contei até " & 100000    'Msgbox: Exibe uma mensagem
        End Sub

No exemplo acima, quando a variável 'i' (que de início vale 1) atinge o número 100000 (cem mil), o código é interrompido (finalizado) e, uma mensagem é exibida: Contei até 100000.

Veja outro exemplo: imagine que você precise criar uma numeração de 1 a 20 na coluna 'A'.

        Sub Macro2( )
            i = 1
            Do Until i > 20   'Faz repetições até que 'i' seja maior que 20
                cells(i, 1) = i    'Escreve o valor de 'i' ca coluna 'A'
                i = i + 1
            Loop
        End Sub


O resultado, após rodar esta macro, é uma numeração de 1 a 20 nas células "A1" até a célula "A20". 

Para movimentar-se entre as planilhas, a lógica é a mesma. A diferença é que nos referimos às planilhas e não às células. A primeira coisa a ser feita, é a contagem das planilhas:

        Sub Macro3( )
            contar = Sheets.Count
            Msgbox "Esta pasta contém " & contar & " planilhas."
        End Sub

Agora, podemos fazer outras coisas, pois de acordo com a  contagem das planilhas, podemos dizer ao Excel onde e o que fazer com elas (planilhas). Imagine que você possua uma pasta com 7 planilhas:
  • A 1ª planilha é a que possui os botões com as macros (Nome Controle);
  • A 2ª e 3ª planilhas são nomeadas com: Custos e Contabilidade;
  • As demais planilhas são nomeadas com Relatório1, Relatório2 ....
Se quisermos criar uma macro para listar somente as planilhas que comecem com "Rel" (de Relatório) podemos utilizar o seguinte código:
        Sub Macro4()
            lin = 3
            'Faz repetições até que 'i' seja igual ao número de planilhas             
            For i = 1 To Sheets.Count
                'Se as 3 1ªs letras do nome da planilha forem = 'Rel' (Então)
                If Mid(Sheets(i).Name, 1, 3) = "Rel" Then
                    'Lista na planilha 'Controle' o nome das planilhas
                    Sheets("Controle").Cells(lin, 2) = Sheets(i).Name
                    lin = lin + 1
                End If
            Next i
         End Sub

Note que neste exemplo não utilizei a instrução Do Until ... Loop. Neste caso é melhor utilizar a instrução For ... Next.

Estes exemplos podem ser copiados e colados diretamente no Visual Basic para que você possa testá-los e entendê-los melhor.

Eles ainda podem ser modificados para fazer inúmeras coisas:

3 comentários:

  1. É isso é uma boa base para o começo criando as variáveis.
    =)

    ResponderExcluir
  2. Uma das coisas mais difíceis para mim eram as variáveis. Não conseguia entender. Agora, show. Estou conseguindo desenvolver algumas soluções. Obrigado Professor Ivair

    ResponderExcluir

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

Ivair Claudio Ferrari