sexta-feira, 17 de maio de 2013

O CÓDIGO VBA QUE MUDOU MEU JEITO DE PROGRAMAR

DO UNTIL... LOOP

Esse código eu acho sensacional, pois me permite uma série de coisas, agora vou ensinar como ele funciona. É o seguinte, serve para repetir uma serie de códigos quantas vezes você determinar.

Vamos fazer nesse exemplo, uma serie com 5 repetições, sendo que você pode determinar quantas vezes quer a repetição, ou pode colocar de forma automática, exemplo fazer até que tal célula seja vazia, assim o código vai ir até quando a condição for falsa. 

O objetivo é digitar um nome em um textbox e exibir uma mensagem dizendo em qual linha o nome está, caso o nome digitado nao esteja na tabela então a mensagem dirá "NOME NAO ENCONTRADO" vejam:

Bom para o exemplo criei o seguinte userform....






criei a seguinte tabela na plan1.


Agora vou criar um código dentro do evento click do botão botao_verificar



Private Sub BOTAO_VERIFICAR_Click()

End Sub

Em seguida devemos criar uma variável de tipo inteiro e atribuir um valor inicial a mesma. Geralmente o valor inicial é igual ao numero da primeira linha a ser verificada pelo laço de repetição Do Until... Loop.


Private Sub BOTAO_VERIFICAR_Click()

Dim linha As Integer
linha = 2

End Sub



Depois vamos criar o laço de repetição, sendo que o mesmo vai ser repetido apenas por 5 vezes assim sendo como a variavel já tem o valor inicial como 2, então o código Do Until...Loop será executado até que a variável tenha o valor igual a 7.


Private Sub BOTAO_VERIFICAR_Click()
Dim linha As Integer
linha = 2
Do Until linha = 7

linha = linha + 1

Loop
End Sub


Pronto agora sabendo que o laço vai se repetir por 5 vezes isso quer dizer que vai passar uma vez em cada linha afinal a tabela tem apenas 5 registros. Vamos por um código IF para verificar se o valor digitado no objeto TextBox de nome TXT_BUSCA corresponde a uma das 5 linhas na plan1 na coluna "A", sendo que o código vai verificar linha por linha....

Private Sub BOTAO_VERIFICAR_Click()
Dim linha As Integer
linha = 2
Do Until linha = 7
If Me.TXT_BUSCA.Text = Plan1.Range("a" & linha).Value Then

Else

linha = linha + 1

End If

Loop
End Sub


Agora caso os nomes sejam iguais em algum momento do laço, eu quero que seja exibida uma mensagem dizendo "O NOME DIGITADO ESTÁ NA LINHA " aí vai aparecer junto o numero do linha. 


Private Sub BOTAO_VERIFICAR_Click()
Dim linha As Integer
linha = 2
Do Until linha = 7
If Me.TXT_BUSCA.Text = Plan1.Range("a" & linha).Value Then
MsgBox "O NOME DIGITADO ESTÁ NA LINHA " & linha
Else

linha = linha + 1
End If

Loop
End Sub


Agora já que o que eu quero foi efetuado eu vou encerrar a rotina.

Private Sub BOTAO_VERIFICAR_Click()
Dim linha As Integer
linha = 2
Do Until linha = 7
If Me.TXT_BUSCA.Text = Plan1.Range("a" & linha).Value Then
MsgBox "O NOME DIGITADO ESTÁ NA LINHA " & linha
Exit Sub
Else

linha = linha + 1
End If

Loop
End Sub


Agora suponhamos que o laço chegue ao fim sem encontrar nenhuma linha com o mesmo nome que foi digitado no objeto textbox, então eu quero exibir uma nova mensagem dizendo "O NOME DIGITADO NÃO ESTA NA TABELA".


Private Sub BOTAO_VERIFICAR_Click()



Dim linha As Integer
linha = 2
Do Until linha = 7
If Me.TXT_BUSCA.Text = Plan1.Range("a" & linha).Value Then
MsgBox "O NOME DIGITADO ESTÁ NA LINHA " & linha
Exit Sub
Else

linha = linha + 1
End If

Loop
MsgBox "O NOME DIGITADO NAO ESTA NA TABELA", vbExclamation

End Sub


Isso aí agora basta executar o userform digitar o nome desejad e clicar no botão... Sendo que a comparação irá diferenciar as letras maiúsculas das minúsculas kkkkk

Nenhum comentário:

Postar um comentário