Sie sind auf Seite 1von 24

FUNES NO EXCEL

ndice

O que uma Funo
Funes do Excel
Como Criar Funes
Onde Definir a Funo
Trabalhar no Editor de VBA Criar uma Funo
Execuo de uma Funo dentro de uma clula
Utilizao de variveis
Tipos de variveis
Declarao de Variveis
Estruturas de Controlo
If-Then-Else
A instruo adicional ElseIf
Select Case
For Next
Funcionamento do Ciclo:
Perigos associados utilizao do ciclo For-Next:
While-Wend
Funcionamento do Ciclo
Perigos associados utilizao do ciclo While-Wend
Do Loop


O que uma Funo
Funes so rotinas que tm como objetivo executar umconjunto de instrues e produzir umvalor final.
So definidas por:
umnome elucidativo da sua funo,
parmetros - valores enviados entre parntesis e que constituem o input ( a matriaprima) da funo, i.e.,
sobre eles que sero executados os respectivos clculos. Existemfunes que no necessitam de
parmetros Rand(), Today(), Pi()),
resultado ou output valor produzido pela aplicao da funo aos parmetros.
Recorde-se como exemplo a funo SUM , esta recebe por parmetro umconjunto de valores que se pretendem
somar, sabe-se que o resultado da aplicao dessa funo ao conjunto de valores ser o respectivo somatrio.

Funes do Excel
O Excel dispe de um conjunto variado de funes (de estatstica, de data e hora, de matemtica e trigonometria,
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
1 de 24 15/05/2011 13:13
de finanas, de pesquisa e referncia, de bases de dados, de texto, de lgica, e de informao) pr-programadas
que se podemutilizar nas clulas da worksheet para executar os mais diversos clculos.
Contudo, existem funes que o Excel no contempla e que por vezes os utilizadores gostariam de aplicar para a
realizao dos seus clculos usuais. Neste contexto, est previsto o desenvolvimento de funes personalizadas
recorrendo a uma codificao das mesmas numa linguagem que o computador possa entender e executar - Visual
Basic for Applications (VBA).

Como Criar Funes
Defina o objectivo da funo, os parmetros e resultado 1.
Escreva (emlinguagemnormal) os passos que essa funo deve executar para, combase nos parmetros
produzir o valor final. Nesta etapa est a definir o algoritmo.
2.
Traduza o seu algoritmo em VBA. Para escrever uma funo em VBA deve obedecer seguinte sintaxe: 3.
Function <Nome da Funo>( <parametro1>, <parametro2>,)

<Nome da Funo>=<Valor ou Expresso>

End Function
A definio comea coma palavra-chave Function e termina comas palavras End Function. Para definir o
valor produzido pela uma funo basta no seu interior, atribuir ao nome da funo um determinado valor ou
expresso.

Aplicaes Prticas
Problema: Fazer uma funo que calcule o valor com IVA.
Parmetros / Input: Valor Ilquido e Taxa de IVA
Passos a executar:
a)Multiplicar o Valor Ilquido pela Taxa de IVA
b)Somar ao Valor Ilquido o valor calculado no passo anterior. Assim o valor do IVA deve ser
atribudo a uma varivel, no passo 2.1, para utilizao posterior.
EmVBA:


Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
2 de 24 15/05/2011 13:13

Problema: Fazer uma funo que gere valores aleatrios numintervalo real definido por dois limites
Parmetros / Input: Limite Inferior e Limite Superior
Passos a executar:

a)Utilizar a funo Rnd para produzir nmeros aleatrios (entre 0 e 1)
b)Somar o Limite Inferior com o resultado da alnea anterior multiplicado pela diferena entre o
Limite Superior e o Limite Inferior
EmVBA:







Onde Definir a Funo
A funo temde ser definida (escrita) emlinguagemVBA numsitio apropriado -Editor de Visual Basic for
Applications. Para aceder ao editor escolha a seguinte sequncia de opes do menu: Ferramentas / Macro / Editor de
Visual Basic



Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
3 de 24 15/05/2011 13:13
Project Explorer
Se a janela no estiver visvel ative-a atravs do Exibir / Explorer do Objeto ou utilizando o boto ou combinaes de
letras associadas a esta tarefa.
Nesta janela poder visualizar a hierarquia dos projetos de Visual Basic for Applications ativos nesse momento.
Entre eles dever encontrar um cujo nome corresponde ao nome do EstaPasta_de_trabalho do Excel comque est
a trabalhar e.g. VBAProject (Pasta1). dentro deste projeto que dever trabalhar para que todas as
funcionalidades que implemente estejamnele activas sempre que necessrio.
Assim se fizer o desdobramento do seu VBAProject, encontrar umfolder cuja designao Microsoft Excel
Objects, e umoutro designado Modulos (se este no aparecer significa que o seu projecto ainda no possui
qualquer funo implementada. Para criar este folder dever fazer: Inserir / Modulo).
Certifique-se, antes de comear a criar a funo, que o est a fazer dentro dos modules, caso contrrio elas no
funcionaro como pretende.




Trabalhar no Editor de VBA Criar uma Funo

Aplicao Prtica
Problema: Criar uma funo que calcule o IVA
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
4 de 24 15/05/2011 13:13
Parmetros / Input: Valor Ilquido e Taxa de IVA 1.
Passos a executar: 2.
a)Multiplicar o Valor Ilquido pela Taxa de IVA
b)Para criar a funo no Editor de VBA:

Uma vez seleccionado o mdulo onde pretende construir a funo poder:
Escrever a funo integralmente, ou
Recorrer ao Inserir / Procedimento para que o VBA lhe crie a estrutura
Nesta caixa de dilogo dever indicar o tipo de rotina a criar Function e o nome que pretende dar
funo. Automaticamente o Visual Basic for Applications criar a estrutura da rotina, que neste caso ficaria:
Function IVA( )
End Function

Depois bastar escrever a expresso que produzir o valor final, entre estas duas linhas de cdigo, como mostra a
figura seguinte
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
5 de 24 15/05/2011 13:13




Execuo de uma Funo dentro de uma clula
Uma vez que uma funo produz um valor ela poder ser executada dentro de uma clula numa WorkSheet,
semelhana de qualquer uma outra funo do Excel


Posicione-se na clula onde pretende inserir a funo
Inserir / Funo 1.
Selecione a categoria Definida pelo Usurio repare que aparece listada a funo que acabou de criar IVA 2.
Clique em OK e de imediato uma janela de ajuda vir auxiliar a utilizao da sua funo 3.


Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
6 de 24 15/05/2011 13:13
Introduza os parmetros e clique em OK 1.



Em suma:
Qualquer funo poder ser utilizada numa WorkSheet do Excel, sendo a sua utilizao semelhante a qualquer
outra funo: numa clula
=<nome da funo>(<Param_1>, <Param_2>)





Utilizao de variveis
As variveis constituem repositrios temporrios de valores, podendo ser utilizadas para diversos fins.Quando se
pretende atribuir valores a variveis dever-se- indicar o nome da varivel, o operador "=" e o valor que se
pretende que a varivel armazene.
<Nome_Varivel> = <Valor>
O nome da varivel representa o contedo da mesma, i.e., sempre que mencionar o nome da varivel o seu
contedo que ser considerado.

Tipos de variveis
O tipo de varivel est associado ao gnero de informao que esta tem hiptese de armazenar:
Boolean 2 bytes Permite armazenar valores Boolenaos True ou False
Byte 1 Byte permite armazenar nmeros sem sinal entre 0 e 255
Currency - 8 bytes permite armazenar moeda
Date 8 Bytes permite armazenar datas
Double 8 bytes permite armazenar um real desde
1.79769313486232E308 at -4.94065645841247E-324 para valores negativos, e desde
1.79769313486232E308 at 4.94065645841247E-324 para valores positivos.
Single 4 bytes permite armazenar um real desde -3.402823E38 at
-1.4011298E-45, para valores negativos e desde 3.402823E38 at 1.4011298E-45, para valores
positivos
Integer 2 bytes - permite armazenar nmeros inteiros entre -32.768 e 32767
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
7 de 24 15/05/2011 13:13
Long 4 bytes permite armazenar nmeros inteiros entre -2 147 483 648 e
2 147 483 648
Object 4 bytes utilizado para fazer referncia a um objecto do Excel
String 1 byte por caractere permite armazenar conjuntos de caracteres
Variant 16 bytes - permite armazenar qualquer tipo de dados
User-Defined permite armazenar valores de tipos diferentes

Declarao de Variveis
As variveis que utilizar dentro de uma funo devero por norma ser declaradas i.e. definidas, sempre que uma
varivel for utilizada semser definida o VBA considera-a do tipo Variant. A definio feita da seguinte forma:
Dim Numero As Integer
Onde:
Dim Palavra chave que indica uma declarao de variveis (abreviatura de dimenso)
Numero - nome da varivel a utilizar
As palavra chave utilizada para separar o nome da varivel do tipo de dados
Integer tipo de dados atribudo varivel

Estruturas de Controlo
O VBA disponibiliza algumas estruturas que pode utilizar para controlar o decurso da execuo da rotina. Estas
estruturas do ao programador um poder enorme para construir funes bastante complexas e flexveis.

VBA Control

If -Then - Else Testa uma condio e executa umdeterminado conjunto de instrues
consoante o resultado dessa avaliao
For Next Executa uma determinada tarefa um determinado nmero de vezes.
While-Wend Executa uma determinada tarefa enquanto que uma determinada condio
permanea verdadeira, i.e., com o valor True.
Do Loop Executa uma determinada tarefa enquanto que a avaliao de uma
condio permanea True ou ento at que seja True.
Select - Case Selecciona um dos segmentos de cdigo a processar mediante a avaliao
consecutiva de condies.
For Each Next Realiza uma determinada tarefa repetitiva em cada objecto de uma
coleco ou em cada item de umarray.
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
8 de 24 15/05/2011 13:13


If-Then-Else
Recorrendo funo IF do Excel, recorde:
=IF( <condio>, <se condio verdadeira>, <se condio falsa>)
A funo IF tinha o seguinte comportamento:
1- Avalia a condio, que dever ser uma expresso booleana colocada como primeiro parmetro;
2-Se a condio for verdadeira, ento (then) realiza as operaes colocadas no segundo parmetro;
3- Caso contrrio (else), realiza as operaes que formam o terceiro parmetro

A estrutura IF do VBA tem o mesmo tipo de funcionamento, o que difere a sintaxe.
Assim:
If <Condio>Then
<se condio verdadeira>
[ Else
<se condio falsa>]
End If
A palavra Else opcional sendo que no caso de ser omitida, a avaliao negativa da condio implica uma sada
automtica da Instruo If.

Aplicao Prtica
Problema: Determinar se um nmero par
Elementos de anlise
a)Nome: _Par
b)Parmetros: nmero que vai ser avaliado

Output: True se for par, e False caso contrrio

Passos a executar:
a)Dividir o nmero por dois e apurar o resto da diviso

Avaliar o resto da diviso: 1.
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
9 de 24 15/05/2011 13:13
a)Se for igual a zero, ento o nmero par e a funo assume o valor True
b)Seno, o valor impar e a funo assume o valor False
EmVBA:


Interpretao
Dim resto As Double Declarao da varivel resto, onde guardado o resto da diviso do nmero por dois
Resto = Numero Mod 2 Mod uma funo que calcula o resto da diviso do Numero por 2 (neste caso). O valor
calculado atribudo varivel resto.
If Palavra chave que indica o inicio de uma instruo If-Then-Else
Resto = 0 A condio a testar. Serve para determinar a sequncia a dar execuo da rotina. Da avaliao
desta condio pode-se obter umde dois valores True ou False, sendo que depende deste
resultado o caminho a prosseguir. Se for True executar as instrues que seguirema
palavra-chave Then at encontrar a palavra chave Else, no executando mais nada dentro do IF,
caso contrrio executar o cdigo que se seguir palavra chave Else at ao End If.
Then Palavra chave que determina o fimda condio teste. Todas as instrues que tminicio nesta
palavra-chave at palavra-chave Else sero executadas se a condio for verdadeira.
_Par = True Instruo a executar se a condio for verdadeira.
Else Palavra-chave que determina o terminus de execuo das instrues quando o resultado da
avaliao for True, e que determina o inicio das instrues a executar se o resultado da condio
for False.
_Par = False Instruo a executar se a condio for falsa.
End If Palavra-chave que indica o fimdo controlo de If-Then-Else e como tal onde se deve retomar as
instrues para prosseguir a execuo do procedimento.


Aplicao Prtica
Problema: Crie a funo Mod para usar nas clulas do Excel.
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
10 de 24 15/05/2011 13:13

Elementos de anlise
a)Nome: Resto_Diviso
b)Parmetros: Dividendo e Divisor

Output: resto da diviso do Dividendo pelo Divisor
Passos a executar:
a)Calcular o quociente da diviso (Dividendo / Divisor) na forma inteira
b)Subtrair ao dividendo a multiplicao do quociente pelo Divisor, obtendo assim o resto
EmVBA:

A instruo adicional ElseIf
Esta instruo prope uma condio alternativa se o teste da condio anterior tiver tido um resultado
negativo.
Aplicao Prtica
Problema: Pretende-se criar uma funo que classifique etariamente umindivduo em funo da sua idade.
A classificao pretendida a seguinte:
Idade Classe Etria
Menos de 3 anos Beb
Dos 3 aos 12 Criana
Dos 13 aos 19 Adolescente
Dos 20 aos 25 J ovem
Dos 26 aos 65 Adulto
Mais de 65 Idoso

Elementos de anlise
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
11 de 24 15/05/2011 13:13
a)Nome: Classe_Etria
b)Parmetros: Idade
Output: "Beb", "Criana", "Adolescente", "Jovem", "Adulto" ou "Idoso"
Passos a executar:
Avaliar a idade
a)Se tiver menos de trs, ento "Beb"
b)Seno, se tiver menos de treze, ento "Criana"
c)Seno, se tiver menos de vinte, ento "Adolescente"
d)Seno, se tiver menos de vinte e seis, ento "Jovem"
e)Seno, se tiver menos de sessenta e seis, ento "Adulto"
f)Seno "Idoso"

EmVBA:


Este tipo de codificao pode tornar-se confuso e difcil de controlar, como tal o VBA proporciona uma estrutura
mais simples para este tipo de situaes: Select Case.
Select Case
Permite a escolha de umpercurso mediante a avaliao de n condies. de extrema utilidade para evitar os Ifs
encadeados, dando um maior grau de legibilidade e simplicidade ao cdigo construdo.
Select Case <Expresso a ser avaliada>
[Case <Valor da Expresso>[Instrues a realizar]]
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
12 de 24 15/05/2011 13:13
...[Case Else [Instrues a realizar na situao residual]]
End Select


Aplicao Prtica
Problema: Alterar a estrutura da funo Classe_Etria mediante a aplicao do Select Case.

Construo da Estrutura
Select Case Palavras-Chave que indicamo inicio de umcontrolo Select Case
Idade Expresso sujeita a teste, i.e., varivel cujo contedo est a ser avaliado. Esta
varivel vai ser comparada sucessivamente pelos valores alternativos
apresentados nas instrues Case <Valor>, se encontrar o valor nalguma dessas
opes Case executar as linhas de cdigo que a tero inicio at opo de
Case seguinte. Caso o valor da varivel a ser comparada no corresponda a
nenhumvalor apresentado nas opes Case, existe uma opo Case especial -
Case Select - para os restantes valores, neste caso sero executadas todas as
instrues que se localizementre o Case Else e o Case Select.
Case Is<3 ou
Case Is<13 ou
Case Is<20 ou
Case Is<26 ou
Case Is<66
Expresses Case. Se o valor da varivel for igual a qualquer umdos valores
apresentados emcada uma destas expresses, o fluxo de execuo ter
continuidade na linha abaixo da expresso case que faz o matching, at que uma
nova expresso case seja encontrada. Sendo que nessa altura termina o controlo
Select Case dando continuidade ao programa nas instrues que se seguiremao
End Select.
Case Else Ser a instruo Case residual, seleccionada somente se nenhuma das outras o
tiver sido. Neste caso sero realizadas todas as instrues de cdigo que se lhe
seguiremat expresso End Select. Findo o qual seguir todas as instrues
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
13 de 24 15/05/2011 13:13
aps o controlo Select case.
End Select Palavra-Chave que indica o fimdo controlo Select Case.


For Next
Permite a execuo repetida de uma tarefa durante um determinado nmero de vezes.
For <Inicializao do Contador>To <Valor >[ Step <Valor a Incrementar>]
<Instrues a realizar emcada iterao>
Next

Aplicao Prtica
Problema: Pretende-se criar uma funo que recebendo a base e a potncia calcule o valor respectivo.

Elementos de anlise
a)Nome: Calc_Potncia
b)Parmetros: Base, Potncia
c)Output: Base elevada potncia
Passos a executar:
Multiplicar sucessivas vezes (nmero indicado pela potncia) a base pelo resultado acumulado das sucessivas
operaes.
EmVBA: 1.


Funo das Variveis:
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
14 de 24 15/05/2011 13:13
Varivel Funo
i Conta o nmero de vezes que a base j foi multiplicada, uma varivel que ser automaticamente
incrementada emcada looping do ciclo.
acumulado Varivel que armazena o resultado sucessivo por cada vez que se multiplica. Inicializado a 1 (elemento
neutro da multiplicao) antes do ciclo.


Construo do Ciclo:
For Palavra-chave que indica o inicio do ciclo For-Next
i = 1 To Potncia Expresso que contma inicializao do contador, indicando o valor de inicio e de fim. Assim, o
nmero de vezes que o ciclo executado ser: Valor_Fim Valor_Inicio +1.
A palavra To utilizada para separar o valor do contador no momento inicial do valor no momento
final. (Traduo: O contador iniciar-se- a ume atingir o valor mximo traduzido pela varivel
Potncia)
Step 1 Palavra chave utilizada para especificar o valor a incrementar ou decrementar ao contador do ciclo por
cada vez que o loop concretizado. Normalmente o valor a incrementar um, contudo qualquer outro
valor pode ser utilizado, desde nmeros decimais, a nmeros negativos (Provocando assima
decrementao). A palavra-chave Step opcional, sempre que for omitida assumido 1 como o valor a
incrementar por defeito.
acumulado = acumulado *
Base
Instruo a realizar de cada vez que o ciclo for executado. Neste caso a instruo nica, contudo
poder-se-o adicionar outras instrues.
Next Palavra Chave que indica o fimde umciclo For-Next . Sempre que a execuo do ciclo chega
instruo Next incrementa a varivel contador e volta ao inicio do ciclo.


Traduo Integral:
For i = 1 To Potncia Step 1
acumulado =acumulado * Base
Next
Para o nmero de vezes, a iniciar em 1 at que atinja, o valor Potncia, pela incrementao de 1 na execuo de
cada ciclo, dever multiplicar sucessivamente o resultado acumulado, pela base.

Funcionamento do Ciclo:
A primeira execuo do ciclo distingue-se das restantes por a ela estar associada a inicializao do contador, sendo o
restante procedimento semelhante a qualquer outra execuo.
No inicio de cada execuo do ciclo, a varivel contador comparada com o valor final de execuo. Se o Step for um
valor positivo (incrementar) e o valor do contador for superior ao valor final significa que o ciclo j foi realizado o
nmero de vezes pretendido, e ento o cdigo acabar a execuo da instruo For-Next e seguir na linha de
cdigo que esteja situada imediatamente a seguir, caso contrrio executa uma vez mais o ciclo e incrementa a
varivel contador. Por outro lado, se o Step contiver valor negativo (decrementar) e o valor do contador for inferior ao
valor final significa que o ciclo j foi realizado o nmero de vezes pretendido, e ento o cdigo acabar a
execuo da instruo For-Next e seguir na linha de cdigo que esteja situada imediatamente a seguir, caso
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
15 de 24 15/05/2011 13:13
contrrio executa uma vez mais o ciclo e decrementa a varivel contador.

Perigos associados utilizao do ciclo For-Next:

No definir o limite de execuo (no atribuir valor varivel que o define)

Definir erroneamente o Step, por forma a que nunca seja obtido o valor que determina o fim da execuo

estas condies implicaro que o ciclo no tenha fim Ciclos Infinitos


Aplicao Prtica
Problema: Pretende-se criar uma funo para calcular um factorial.

Elementos de anlise
a)Nome: Factorial
b)Parmetros: Nmero
c)Output: Factorial do Nmero introduzido
Passos a executar:
a)Verificar se o nmero positivo
Se for, multiplicar sucessivas vezes um nmero pelo resultado acumulado das sucessivas
multiplicaes dos nmeros inteiros que o antecedem
Seno indicar "ERRO"
EmVBA:

Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
16 de 24 15/05/2011 13:13

While-Wend
A estrutura While-Wend tem um funcionamento similar ao For-Next. Realiza um looping um determinado nmero
de vezes, enquanto que uma determinada condio permanea verdadeira. A diferena entre este ciclo e o ciclo
For-Next basicamente o facto deste saber apriori o nmero de vezes que vai ser realizado, enquanto que um
ciclo While-Wend poder ou no sab-lo pois terminar quando a condio for Falsa.
While <Condio>
<Instrues a realizar emcada iterao>
Wend

Aplicaes Prticas
Problema: Modificar a estrutura da funo Factorial, criada com o ciclo For-Next
(Neste caso o ciclo sabe apriori o nmero de vezes que ir ser realizado)

Elementos de anlise
a)Nome: Factor
b)Parmetros: Nmero
c)Output: Factorial do Nmero introduzido
Passos a executar:
a)Verificar se o nmero positivo
Se for, multiplicar sucessivas vezes um nmero pelo resultado acumulado das sucessivas
multiplicaes dos nmeros inteiros que o antecedem
Seno indicar "ERRO"
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
17 de 24 15/05/2011 13:13
EmVBA:

Problema: Apostar um nmero entre 1 e 10 e saber ao fim de quantos lanamentos (geraes aleatrias) que foi
seleccionado.
(Neste caso o ciclo no sabe o nmero de vezes que ir ser realizado)

Elementos de anlise
a)Nome: Aposta_1a10
b)Parmetros: Nmero
c)Output: Nmero de lanamentos
Passos a executar:
a)Verificar se o nmero est no intervalo definido
Se estiver, gerar continuamente nmeros aleatrios entre 1 e 10 e comparar com o Nmero da aposta,
quando for igual pra e indica o nmero de lanamentos
Seno estiver no intervalo indicar "ERRO DE INSERO"
EmVBA:
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
18 de 24 15/05/2011 13:13


A instruo While-Wend tem como funo gerar nmeros aleatrios entre 1 e 10 por forma a encontrar o nmero
da aposta, e saber qual o nmero de lanamentos necessrios para que aquele valor fosse obtido.

A Funo das Variveis
Varivel Funo
Lanamento Guarda o valor obtido emcada umdos lanamentos.
i Nmero de lanamentos realizados at obter o resultado da aposta. Este valor temde ser incrementado
cada vez que realizado umsorteio.

Construo do Ciclo
While Palavra-chave que indica o inicio do ciclo While-Wend
Nmero<>Lanamento Condio teste utilizada para determinar o terminus da realizao do
ciclo. Se esta condio for Verdadeira executa as instrues que esto
dentro do While-Wend, se for Falsa a execuo do ciclo terminada
tendo o programa sequncia nas instrues que seguema palavra chave
Wend.
Lanamento = Int(1 + Rnd() * (10 - 1 + 1)) Instruo a realizar de cada vez que o ciclo executado. Temcomo
funo gerar nmeros aleatrios inteiros entre 1 e 10. Repare que este
valor inicializado antes do inicio do ciclo por forma a garantir uma
comparao correcta na condio.
Emvez de realizar esta expresso poderia utilizar a funo Gera_Entre.
i = i + 1 Instruo a realizar de cada vez que o ciclo executado. Temcomo
funo fazer a contagemde quantos lanamentos foramrealizados at se
obter o valor da aposta. Repare que este valor quando entra para o ciclo
j temo valor 1 correspondente ao sorteio realizado inicialmente.
Wend Palavra Chave que indica o fimde umciclo While-Wend.
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
19 de 24 15/05/2011 13:13

Traduo Integral
While Nmero <> Lanamento
Lanamento = Int(1 + Rnd() * (10 - 1 + 1))
i = i + 1
Wend
Enquanto o nmero do lanamento no for igual ao nmero da aposta, o sorteio continua, o que implica sortear
umnmero e contabilizar o nmero de sorteios realizados.

Se utilizasse a funo Gera_Entre para a gerao de nmeros aleatrios, a funo seria:


Funcionamento do Ciclo
Existe uma fase de inicializao das variveis envolvidas na condio teste para garantir o correcto
funcionamento do ciclo.
Avalia a condio teste e se for verdadeira executa todas as instrues at palavra-chave Wend voltando de
novo avaliao da condio, se for falsa prossegue a execuo da rotina nas instrues que se localizamdepois
da palavra-chave Wend.

Perigos associados utilizao do ciclo While-Wend
M ou inexistncia de inicializao das variveis envolvidas na condio-teste.
Garantir que as variveis envolvidas na condio teste podero ter valores diferentes por cada vez que o
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
20 de 24 15/05/2011 13:13
ciclo seja executado.
Garantir que em algum momento a condio teste falsa e o ciclo termina a sua execuo.
A no verificao destas condies implicar que o ciclo no tenha fim Ciclos Infinitos

Do Loop
Esta estrutura similar estrutura do While-Wend. Contudo fornece duas possibilidades que esto limitadas
quela estrutura:
Do Loop permite posicionar a condio teste no inicio ou fimdo loop, a condio no fim do Loop evita uma
inicializao prvia do valor das variveis envolvidas na condio teste, dado que essa inicializao pode ser
feita no decurso do ciclo comvalores reais.
Do Loop permite ainda especificar se o loop se vai realizar enquanto (while) uma expresso for verdadeira
ou at que (until) a condio ser verdadeira (facilidade conseguida atravs do operador Not)

Poder ser:
Do [{While | Until} <condio>]
<Instrues a realizar por iterao>
Loop
Ou ento:
Do
<Instrues a realizar por iterao>
Loop[{While | Until} <condio>]

Aplicaes Prticas

Problema: Apostar um nmero numintervalo definido e saber ao fim de quantos lanamentos (geraes aleatrias
dentro do intervalo considerado) que foi seleccionado.

Elementos de anlise
a)Nome: Aposta
b)Parmetros: Nmero, Limite Inferior e Limite Superior
c)Output: Nmero de lanamentos necessrio realizar para que o nmero apostado fosse seleccionado
no intervalo de nmeros definido pelo Limite Inferior e Superior
Passos a executar:
a)Verificar se o nmero est no intervalo definido (Limite Inferior a Limite Superior) e se o intervalo
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
21 de 24 15/05/2011 13:13
est bemdefinido (Limite Inferior <Limite Superior)
b)Se estiver, gerar continuamente nmeros aleatrios nesse intervalo e comparar com o Nmero da
aposta, quando for igual pra e indica o nmero de lanamentos
Seno estiver no intervalo indicar "ERRO DE INSERO"
EmVBA:

Utilizando a condio teste no inicio do Loop e com a palavra While

Utilizando a condio teste no fim do Loop e coma palavra While


Utilizando a condio teste no inicio do Loop e com a palavra Until

Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
22 de 24 15/05/2011 13:13

Utilizando a condio teste no fim do Loop e coma palavra Until


FIQUE TRANQILO, ESTE SITE AUDITADO POR:
EM APENAS 06 ANOS DE PUBLICAO ESTA HOMEPAGE J ALCANOU A MARCA DE MAIS DE
1.500.000 PAGEVIEW!
TUDO SOBRE EXCEL - Comeste site seu Excel nunca mais ser o mesmo!
N PageView Do Portal:
N PageView Desta Pgina:
Usurios Online:
Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
23 de 24 15/05/2011 13:13
2009 tudosobrexcel.com. Todos os direitos reservados.


Funes de Excel http://www.tudosobrexcel.com/funcoes/licoes_funcoes/
24 de 24 15/05/2011 13:13

Das könnte Ihnen auch gefallen