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
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