domingo, 11 de setembro de 2011

7.2.2. DO – LOOP WHILE (CONTINUAÇÃO DO CAPÍTULO 7)

7.2.2. DO – LOOP WHILE

Você perceberá que o raciocino de aplicação desta estrutura é o mesmo do item 7.2.1. Mudamos apenas a ordem, reposicionando os comandos.

Chamo esta formatação de CAPITÃO NASCIMENTO, pois bate primeiro pra depois fazer perguntas. Vamos usar o exemplo anterior para ilustrar.




CÓDIGO PARA COPIAR

Sub FinalizaDoLoopWhile()

Dim Finaliza As String

'Finaliza = "inicio"

'O que mudou no código com esta formatação? Simples meu caro! Agora, executamos primeiro e fazemos o teste depois.
'Com isto, não precisamos mais forçar a entrada no LOOP. Por esta razão a variável Finaliza, não precisará mais ser
'preenchida com a palavra início.
Do

Finaliza = InputBox("Digite a palavra FIM para finalizar o LOOP", "EXEMPLO DO WHILE - LOOP")

MsgBox "Você não digitou a palavra FIM! Prestenção sô!!!"
Loop While Finaliza < > "FIM"

End Sub

Mamão com açúcar!!!

Para acessar o curso completo Clique aqui

quinta-feira, 8 de setembro de 2011

EXEMPLOS DO CURSO DE PROGRAMAÇÃO VBA

Pessoal! Segue a planilha de exemplos do curso de programação VBA. Clique aqui!

7.2. Estrutura DO WHILE/UNTIL - LOOP e seus desmembramentos

Pessoal! Segue mais uma atualização do nosso curso.

7.2. Estrutura DO WHILE/UNTIL - LOOP e seus desmembramentos

Esta estrutura, ao contrário do FOR-NEXT é dinâmica. Neste caso, temos a possibilidade de executar o LAÇO quantas vezes for necessário.

Nesta nova estrutura que estudaremos, a repetição acontecerá até que a condição exigida seja atendida. Este tipo de LOOP é simplesmente fantástico, já que automaticamente, ele fará o que for preciso para cumprir seu objetivo de forma inteligente e autônoma. Por outro lado, precisamos ter alguns cuidados ao criá-la, pois, caso a condição não seja satisfeita durante a execução, teremos o famoso LOOP INFINITO.

Não se preocupe com os desmembramentos! A decisão de qual formatação usar é algo que só poderá ser definida quando você estiver desenvolvendo seus aplicativos. Garanto que será intuitivo.


7.2.1. DO WHILE – LOOP

Suponha que você queira criar um pequeno sistema que seja executado até que um comando específico possa finalizá-lo.

Vamos criar um algoritmo super simples. Seu objetivo será apenas finalizar o LAÇO para que o sistema não trave. O código verificará o que será digitado na InputBox. Enquanto você digitar algo diferente (< >) de FIM(com letra maiúscula) o LOOP continuará a ser executado. Neste código, estamos dando uma solução ao problema, ou seja, digite FIM e o LAÇO será quebrado.






CÓDIGO PARA COPIAR

Sub FinalizaDoWhile()

'Vamos declarar a variável que receberá a palavra. Se você quiser armazenar uma palavra em uma variável, ela deve ser
'declarada como String, do contrário o sistema acusará erro.
Dim Finaliza As String

'Inicializamos a variável com qualquer palavra para forçar o loop. Não entendeu? É simples, como disse, o LOOP será executado
'enquanto a palavra FIM não for digitada. Então, se colocamos inicialmente a palavra INÍCIO dentro da variável
'o DO WHILE vai dizer "Não é a mamããããe!!!!" e não será desativado.
Finaliza = "inicio"

'Quando o código começar a ser executado a variável finaliza terá dentro de sí a palavra INÍCIO(entenda! Quando você clica em
'F5 para ativar o código, ele será executado da esquerda para a direita, de cima para baixo). Então, quando chegarmos no LOOP
'(DO WHILE) ele dirá, INICIO é diferente de FIM. Vou rodar novamente!
'Acredite! este LOOP é teimoso feito mula. Enquanto não digitar FIM(em letra maiúscula) ele não irá parar.

Do While Finaliza <> "FIM"
Finaliza = InputBox("Digite a palavra FIM para finalizar o LOOP", "EXEMPLO DO WHILE - LOOP")
'Esta mensagem será sempre que você digitar na InputBox, exatamente por que está abaixo. Logo mesmo que você digite FIM,
'ele será executado mais uma vez. Podemos resolver isto, porém, precisariamos mesclar LOOPS com Estruturas de Repetição.
'Não se preocupe com isto agora, vamos deixar isto para os capitulos que virão. Por ora, entenda este raciocício.
MsgBox "Você não digitou a palavra FIM! Prestenção sô!!!"
Loop


End Sub


Para acessar o curso completo Clique aqui

domingo, 4 de setembro de 2011

7. ESTRUTURAS DE REPETIÇÃO


É isto aí pessoal! Mais uma parte do nosso curso. Vem muito mais pela frente. Logo, logo estarei compilando uma apostila com um conteúdo muito mais aprofundado.

7. ESTRUTURAS DE REPETIÇÃO

Considero as estruturas de repetição, os comandos mais importantes da programação VBA ou de qualquer linguagem, seja JAVA, PHP, C#, C++ dentre outras. Por esta razão, dispensaremos mais tempo ao seu estudo.

Também conhecidos como LOOP’S ou LAÇOS, esses códigos são usados para repetir as ações desejadas até que uma condição X seja satisfeita e tenha se cumprido o propósito definido pelo programador.

É importante salientar, que o programado deve desenvolver o algoritmo com cuidado para não criar um LOOP infinito, ou seja, um código cuja condição nunca poderá ser satisfeita. Durante nosso estudo sobre as estruturas de repetição, veremos a fundo essas inconsistências que podem ocorrer durante a execução de um programa.

Você verá, que os LOOP’S são de longe os comandos mais poderosas da programação VBA, já que podem ser disparados à partir de uma ação do usuário, tornado os programas fáceis de operar e extremamente autônomos.

Em resumo, vamos ver comandos que nos ajudarão a criar rotinas que minimizem ao máximo o tempo gasto com tarefas repetitivas. Entre as estruturas que estudaremos estão a FOR – NEXT, DO WHILE/UNTIL e seus desmembramentos e a poderosa FOR – EACH – NEXT.

Você deve estar se perguntando! Que tipo de repetição está se referindo? Fique tranqüilo, vamos fazer muitos exemplos e a compreensão ficará fácil. Você compreenderá, que programar um LOOP, nada mais é que um exercício de criatividade e profundo conhecimento de lógica algorítmica. Por ora, posso lhe dizer, por exemplo, que é possível numerar uma planilha uma planilha de 1 a 10.000 sem precisar fazer isto:




Em uma situação cotidiana, para numerar uma planilha de 1 a 10.000 no Excel, você precisaria digitar o número 1 na célula A1 e o 2 na célula A2, selecioná-las e sair puxando até , até, até, até e até!!! Ufa! Haja paciência. Quer uma solução para isto. Não se preocupe mais, seus problemas acabaram e a solução não é um produto Tabajara, é só programação VBA.  

Concluindo esta introdução, repiso a importância de se compreender, que os LOOP’S têm como principal objetivo, a repetição de determinado bloco de códigos de forma inteligente e automática.


7.1. Estrutura FOR – NEXT

Este comando é extremamente útil para construirmos algoritmos com um número finito de ações. Ou seja, quando sabemos previamente quantas vezes determinada linha ou bloco de códigos deve ser repetido. É claro  que com um pouco de criatividade, poderemos permitir que o usuário defina o número de vezes que a repetição se processará.

Para definir o número de repetições, precisaremos utilizar uma variável contadora, que armazenará o número de vezes que o código foi repetido. Obviamente, o contador variará de um valor inicial a um valor final. Não esquente sua cuca, mais tarde, os exemplos esclarecerão melhor este conceito.

Agora, veja a sintaxe geral desta estrutura

FOR contador = inicio TO fim INCREMENTO
Comando1
Comando2
...
Comandon
NEXT

O importante é entender que a variável contador, não armazenará o mesmo número o tempo todo. A cada execução do LAÇO, a variável será incrementada pelo valor definido em INCREMENTO. Vamos ao no primeiro exemplo.

1º EXEMPLO

Imagine que você queira criar um programa que faça uma soma, um determinado número de vezes. Os comentários estão no código.



CÓDIGO PARA COPIAR

Sub SomaNumero()

‘Como aprendemos no tópico 3.2, vamos declarar a variável que receberá um número que não se alterará durante a execução do LAÇO.
Dim Total as Integer
‘Agora, declaramos a variável Soma, que receberá o resultado do cálculo que proveniente da execução do LAÇO.
Dim Soma as Interger
‘A última variável que criaremos, receberá o números que se estenderão do valor inicial ao final.
Dim Numero as Interger

‘Neste momento, vamos atribuir um valor específico à variável Total. Repiso, este número será sempre 10
Total=10
‘Vamos inicializar a variável soma com o valor 0. E por que? Se queremos que ela absorva o valor o do calculo que faremos, ela não poderá ser inicializada com valor maior que 0, pois o mesmo seria somado, assim, nossa variável será incrementada à partir do primeiro LOOP. (Perceba que às vezes digo LAÇO e outras LOOP. Na Como já disse, é mesma coisa.)
Soma=0
‘Agora, faremos a soma dos 10 primeiros números. Entenda o código:
‘Para o número de 1 a 10, ou seja, quando o primeiro LOOP for excecutado, a variável Numero terá dentro de sí o valor 1. O cálculo será feito e comando Next dirá, vamos para a próxima fase. Quando o segundo LOOP rodar, a variável Numero terá dentro de si o valor 2 e assim sucessivamente até o número 10. Como determinamos que o LAÇO será executado 10 vezes(For Numero=1 to Total “Entender isto é extremamente importante.), o comando Next finalizará o LAÇO, já que o próximo seria 11, porém, determinamos previamente que nosso LOOP sofreria apenas 10 execuções. Simples não?

‘ Então, Para(FOR) um número que será executado até 10....
For Numero=1 to Total
‘Efetuaremos o cálculo abaixo. No primeiro LOOP teremos: Soma = 0 + 1, então a variável Soma será igual a 1. Concorda? No segundo LOOP, a variável Soma já valerá 1, teremos: Soma(que é 1) = 1( que é o valor de Soma) +1. Se o LAÇO fosse finalizado neste momento, a variável Soma, terminaria com o valor 2. Entendeu o processo? Ou foi muito bruto? Se o processo foi bruto, sugiro que você retome o raciocínio do começo. Tenho certeza que na segunda ou terceira revisão, os conceitos ficarão claros.  
Soma = Soma + Numero
‘Próximo número
Next
‘Exibimos a mensagem com o valor total da soma. E por que o “& Soma”? Quando o LOOP for finalizado a variável Soma estará com o resultado final dos cálculos, então é só fazer uma chamada a ela. Moleza meu Brother!!!
MsgBox “Valor da Soma = “ & Soma
‘Finalizamos o procedimento
End Sub


É isto ai! Click em F5 e execute o programa. O resultado será este:


Por que??? Vamos tirar a prova?

Veja bem, a primeira vez que o LOOP rodar, a variável NUMERO valerá 1 e a SOMA valerá 0, conformo declaramos no início do código. No final do primeiro LOOP, a variável SOMA valerá 1 e a NUMERO valerá 2 e assim por diante. Quando o LAÇO for executado pela décima vez, a variável NUMERO será 10 e valor inicial da SOMA será 45. Somando-se, teremos 55. Molezinha!!! Observe a tabela abaixo e veja como é simples.





2º EXEMPLO

Como lhe disse no começo deste capítulo, há uma maneira mais fácil de inserir números em uma planilha, que não selecionar os dois primeiros e puxar com mouse. Então vamos lá.

No módulo crie esta sub-rotina




CÓDIGO PARA COPIAR

Sub NumeraPlanilha()

'Primeiro, declaramos a variável Planilha. E por que? Porque sim!!! Brincadeira, só pra descontrair. Na realidade,
'se vamos inserir números em uma planilha, precisamos especificar qual vai ser. Neste caso escolhi a Plan2.
Dim Planilha As Worksheet
'Para inserir os números um abaixo do outro, precisamos identificar as linhas. Assim, quando o LOOP rodar, o FOR-NEXT,
'saberá qual e em qual linha o número deverá ser inserido
Dim Linha As Integer

'Determinamos aqui, qual planilha receberá a numeração automática.
Set Planilha = Worksheets("plan2")

'O bloco WITH-END WITH é um facilitador para o nosso código. Quando colocamos With Planilha, estamos querendo dizer,
'que tudo o que está dentro do código, relaciona-se à plan2, que no nosso exemplo, demos o nome de Planilha
'(Dim Planilha As Worksheet) lembra?
With Planilha
'Para a variável linha, que receberá os números de 1 a 15(em momentos distintos é claro), vamos de um a um (Step 1), inserir
'os números.
For Linha = 1 To 15 Step 1
'Quando você digitar o ponto, automáticamente, os objetos, propriedades da Planilha(Plan2) serão acessados. E por que?
'porque você está digitando dentro do bloco WITH-END WITH que criamos para a Planilha. Como você está vendo, acessamos
'Cells(celulas) que obviamente tem linhas e colunas. No nosso exemplo, a linha será a que o FOR-NEXT determinar no
'momento do LOOP e a coluna será sempre 1. Quando o LAÇO rodar a primeira vez, a variável linha será 1. Então teremos:

'      linha, coluna            1
'Cells(  1   ,  1   ).Value = Linha. Interpretando: Na celula 1 da coluna 1, o  valor será igual ao da variável linha,
'que neste caso sera 1.

'Quando o LOOP rodar pela segunda vez, você já sabe o que vai acontecer.
.Cells(Linha, 1).Value = Linha
'Fechamos nosso LOOP
Next
'Fechamos nosso bloco WITH-END WITH.
End With
'Agora é só colocar pra rodar.
End Sub


7.1.1. Discernindo o tal STEP.

Talvez você não tenha entendido muito bem o significado deste negócio no código(Step). É simples, ele determina qual será o andamento do LAÇO, ou seja, de um em um, dois em dois e assim por diante. Para exemplificar, vá no código que acabamos de criar e mude Step1 para Step 2 e execute. Acontecerá isto:




A imagem mostra tudo. O LAÇO continuará numerando de 1 a 15, porém, saltando uma linha. Simples!!!

Te vejo no próximo LOOP.



Para acessar o curso completo Clique aqui

terça-feira, 23 de agosto de 2011

6. ESTRUTURAS DE DECISÃO - CONTINUAÇÃO

6.1.2. Definição da estrutura a ser utilizada

Não há uma regra específica para se definir qual estrutura deverá ser utilizada na construção de um sistema. A utilização de uma ou outra, está condicionada à necessidade e exigências do programa. Assim, sistemas podem ser construídos usando-se apenas if e end IF.

Agora, suponha que você é um professor(não suponha que seja do ensino médio em escola pública, pois neste momento eles estão de greve. Deve haver uma razão pra isto). Imagine que precise de um pequeno sistema que verifique se a nota do aluno é suficiente para aprovação. Vamos a um exemplo prático.

Para lhe ajudar a consolidar os conhecimentos, vamos criar um formulário. Abra uma planilha e siga os passos.

1º. Abra o editor do VBA(Ctrl + F11)




2º. Abra um formulário




3º Altere as propriedades do formulário




Perceba que a propriedade Caption define o nome que aparecerá na barra de título do formulário.

4º. Insira os objetos necessários no formulário

A alteração das propriedades do objeto segue sempre o mesmo padrão. Assim, é só seguir o exemplo do 3º passo.

Veja que inserimos um rótulo com Caption: Nota. Uma caixa de texto e um botão com caption: Verificação.



6.1.3. Programando o sistema de notas

Vamos verificar se a média das notas dos alunos é maior ou igual a 60. Caso positivo, o aluno será aprovado. Veja o fluxograma e tente compreender como o programa irá funcionar.




Perceba que a nota será inserida pelo o usuário, no nosso caso, o próprio professor lembra?! Aquele que lhe contratou para desenvolver o sistema (não se esqueça de combinar o preço antes!).

Logo após a inserção da nota, verificamos se a mesma é maior/igual a 60. Se for, aprovamos a galera, do contrário damos pau em todo mundo sem dó. Se reclamarem da rigidez, diga que a culpa não é sua, o computador é muito insensível.

Agora podemos começar a programar. Para começar, dê dois cliques no formulário. Você verá que o evento padrão é o CLICK, porém, precisamos programar primeiro o evento Initialize, ou seja, aquele que é disparado quando o formulário é aberto.





Na caixa de combinação da direita escolha initialize. Agora, vamos digitar uma linha de código para colocarmos o foco na caixa de texto assim que o formulário for inicializado.

É só digitar me.TextBox1.SetFocus(A caixa de texto será focada)





Assim, todas as vezes que o formulário for aberto, a caixa de texto receberá o foco sem que seja necessário usar o mouse para isto.

Agora dê dois clicks no botão que você criou e digite o código abaixo. Todas as considerações relevantes sobre o algoritmo estão em seu próprio corpo.





Clique em F5 para dar play no sistema. Se quiser que o formulário apareça assim que a planilha for aberta é só digitar verificanota.show no evento open da pasta de trabalho. Dê dois cliques em EstaPasta_de_trabalho e escolha Workbook. Depois de feito isto, perceba que na caixa de combinação à direita, aparecerá Open, que é o evento padrão do Workbook. Veja como fazer abaixo:



Agora é só digitar o código





CÓDIGO PARA COPIAR

Private Sub CommandButton1_Click()

'Iniciamos o programa com o foco na caixa de texto
Me.TextBox1.SetFocus

'Pense! Se o valor que estiver na nossa caixa de texto for maior que 5, então...
If Me.TextBox1.Value > 60 Then

'Emitiremos a mensagem "Aluno Aprovado"
MsgBox "Aluno Aprovado!"

'Voltamos o foco para para a caixa de texto
Me.TextBox1.SetFocus

'Do contrário
Else

'Emitiremos a mensagem "Aluno Reprovado"
MsgBox "Aluno Reprovado!"

'Voltamos o foco para para a caixa de texto
Me.TextBox1.SetFocus

'Fechamos a estrutura de decisão
End If

End Sub


6.2. Estrutura SE(IF) / ENTÃO(THEN) / SENÃO SE(ELSEIF) /  SENÃO(ELSE) – Ninho de IF.

Você deve ter percebido que no tópico 6.1, fizemos basicamente uma verificação, ou seja, o aluno será aprovado ou reprovado. Porém, como todos sabemos, existe a repescagem, mais conhecida como recuperação (quem nunca pegou que atire a primeira pedra!).

Imagine, o professor quer saber quais alunos foram aprovados, reprovados, ficaram em recuperação e demais opções se for o caso. É possível? Claro meu amigo microsoftmaníaco(acabei de inventar!!!, mas não é um trava língua – estou ligando para a editora do Aurélio para acrescentarem. kkk), vamos usar o comando IF / THEN / ELSEIF /  ELSE, também conhecido como ninho de IF.

Para esclarecer melhor, vamos usar o exemplo do tópico anterior e fazer os incrementos necessários. Os comentários em caixa-alta e em vermelho no CÓDIGO PARA COPIAR farão menção às novas linhas de código, porém não se esqueça, as linhas verdes são apenas comentários.


CÓDIGO PARA COPIAR

Private Sub CommandButton1_Click()
'Iniciamos o programa com o foco na caixa de texto
Me.TextBox1.SetFocus

'Pense! Se o valor que estiver na nossa caixa de texto for maior que 60, então...
If Me.TextBox1.Value >= 60 Then

'Emitiremos a mensagem "Aluno Aprovado"
MsgBox "Aluno Aprovado!"

'DO CONTRÁRIO SE, A NOTA FOR ENTRE 40 E 60, ENTÃO, O ALUNO ESTARÁ DE RECUPERAÇÃO

ElseIf Me.TextBox1.Value >= 40 And Me.TextBox1.Value < 60 Then

'EMITIREMOS A MENSAGEM "ALUNO EM RECUPERAÇÃO"
MsgBox "ALUNO EM RECUPERAÇÃO"

'DO CONTRÁRIO SE, A NOTA FOR ENTRE 10 E 40, ENTÃO, O ALUNO ESTARÁ REPROVADO

ElseIf Me.TextBox1.Value >= 10 And Me.TextBox1.Value < 40 Then

'EMITIREMOS A MENSAGEM "ALUNO REPROVADO"
MsgBox "ALUNO REPROVADO"

'AGORA SE O ALUNO FOR MUITO RUIM, A GENTE PODE DETONAR. VEJA SÓ.
'SE A NOTA FOR MENOR QUE 10.

Else 'PERCEBA QUE NÃO USAMOS MAIS O ELSEIF, JÁ QUE ESTA É A ÚLTIMA OBSERVAÇÃO.

'EMITIREMOS A SEGUINTE MENSAGEM
MsgBox "ALUNO EXPULSO DA ESCOLA" 'SACANAGEM!!!!!!!!!

'VAMOS APROVEITAR E LIMPAR A TELA PARA UMA NOVA DIGITAÇÃO
Me.TextBox1.Value = ""

'Voltamos o foco para para a caixa de texto
Me.TextBox1.SetFocus

'Fechamos a estrutura de decisão
End If

End Sub


Viu como o raciocínio é simples. Este é apenas um exemplo, você pode fazer quantos testes quiser ou quantos o sistema exigir.

No próximo tópico, veremos uma estrutura diferente, porém que tem o mesmo objetivo desta. Algumas pessoas dizem ser mais simples. Vamos ver o que você acha.

6.3. Estrutura SELECT CASE

A estrutura SELECT CASE  pode ser usada para simplificar algoritmos que programam atividades repetitivas. Se achar o ninho de IF cansativo, você poderá utilizar este comando.

Para exemplificar, vamos usar o mesmo raciocínio do item 6.2, aplicando o SELECT CASE. Para tanto, vamos implementar nosso projeto, acrescentando mais um botão. Assim, não perderemos os códigos anteriores. Faça como na figura abaixo:




Agora dê um duplo click no botão que você acabou de criar e vamos programá-lo.





CÓDIGO PARA COPIAR

Private Sub CommandButton2_Click()

'No Caso do SELECT CASE, precisamos criar uma variável para armazenar o valor da nota que será
'digitado na TextBox1

'Declare a variável
Dim Nota As Integer
'Agora definimos o valor que será guardado na variável. Veja que, o número que for digitado na
'textbox1 ficará armazenado na variável. Então Nota será igual ao valor da Textbox1.
Nota = Me.TextBox1.Value
'Vamos iniciar a estrutura
Select Case Nota
'Pense! Se o valor que estiver na nossa caixa de texto for maior que 60, então...
Case Is >= 60
'Emitiremos a mensagem "Aluno Aprovado"
MsgBox "Aluno Aprovado!"
'DO CONTRÁRIO SE, A NOTA FOR ENTRE 40 E 60, ENTÃO, O ALUNO ESTARÁ DE RECUPERAÇÃO
Case Is >= 40
'EMITIREMOS A MENSAGEM "ALUNO EM RECUPERAÇÃO"
MsgBox "ALUNO EM RECUPERAÇÃO"
'DO CONTRÁRIO SE, A NOTA FOR ENTRE 10 E 40, ENTÃO, O ALUNO ESTARÁ REPROVADO
Case Is >= 10
'EMITIREMOS A MENSAGEM "ALUNO REPROVADO"
MsgBox "ALUNO REPROVADO"
'AGORA SE O ALUNO FOR MUITO RUIM, A GENTE PODE DETONAR. VEJA SÓ.
'SE A NOTA FOR MENOR QUE 10.
'CASO CONTRÁRIO
Case Else 'PERCEBA QUE NÃO USAMOS MAIS O ELSEIF, JÁ QUE ESTA É A ÚLTIMA OBSERVAÇÃO.
'EMITIREMOS A SEGUINTE MENSAGEM
MsgBox "ALUNO EXPULSO DA ESCOLA" 'SACANAGEM!!!!!!!!!
'VAMOS APROVEITAR E LIMPAR A TELA PARA UMA NOVA DIGITAÇÃO
Me.TextBox1.Value = ""
'Voltamos o foco para para a caixa de texto
Me.TextBox1.SetFocus
'LÓGICO, FECHAMOS O PROGRAMA
End Select


End Sub


Observe que o código será executado até que a condição seja atendida. Por esta razão, a Textbox1 só será limpa e receberá o foco novamente se você digitar um número menor que 10, pois este é o último teste. Caso queira que se repita em todas as hipóteses, copie os códigos.

Finalmente, terminamos com as estruturas de repetição. Agora, vamos ao assunto mais interessante da programação VBA, que lhe permitirá criar programas extremamente sofisticados e que terão como limite apenas a sua imaginação.


Para acessar o curso completo Clique aqui




quinta-feira, 23 de junho de 2011

6. ESTRUTURAS DE DECISÃO

6. ESTRUTURAS DE DECISÃO.

Não são raras as vezes que precisamos decidir o comportamento de um sistema durante a sua execução. Neste sentido, o algoritmo deve ser desenvolvido de modo a permitir que o usuário tome a decisão quanto ao que fazer.  Para tanto, precisamos usar as estruturas de repetição, que são as ferramentas disponibilizadas pelo VBA para estruturarmos os nossos sistemas.

6.1. Estrutura SE(IF) / ENTÃO(THEN) / SENÃO(ELSE)

Usamos esta estrutura para verificar se uma condição foi satisfeita durante a execução do algoritmo. Desta forma, poderemos definir qual será o comportamento do programa, além de dar ao usuário opções de procedimentos possíveis.

É importante lembrar que esta estrutura tem início e fim. Desta forma, para começarmos a programar esta estrutura digitamos IF e fechamos com END IF.

Para facilitar a sua compreensão, vamos criar um programa que receba digitação de um número e identifique os maiores e menores que 10.



CÓDIGO PARA COPIAR

Sub IdentificaNumero()

'Criamos uma variável inteira para receber o número. OBS: Esta variável recebe apenas
'número inteiros, assim,evite números não inteiros, mais tarde isto ficará mais claro.
Dim Numero As Integer

'Criamos uma caixa de entrada(InputBox) para receber o número. Obeserve, que o número
'digitado na InputBox Ficará armazenada na variável número.
Numero = InputBox("Digite o número", "IDENTIFICA NÚMERO")

'Depois que a variável já recebeu o valor digitado, podemos fazer as verificações. Observe:

'Se o número for menor que 10, então exiba uma mensagem(msgbox)
If Numero < 10 Then
MsgBox "Este número é menor que  10!"
'Do contrário/senão, emita outra mensagem
Else
MsgBox "Este número é maior que  10!"
End If

End Sub




Para acessar o curso completo Clique aqui

segunda-feira, 20 de junho de 2011

FLUXO DE CAIXA PESSOAL EM VBA

Pessoal!!! Estou postando um fluxo de caixa feito em programação VBA. Para usa-lo, é só baixar em Programas em VBA. Logo, estarei explicando como utiliza-lo. Até lá.