Excel - Como evitar este bucle infinito

   
Vista:

Como evitar este bucle infinito

Publicado por Alicia (19 intervenciones) el 12/10/2007 19:27:48
A ver, tengo una hoja en la que tengo que buscar coincidencia de nombre, apellido y segundo apellido en la primera fila. Cada dato (nombre, apellido, segundo apellido) esta en una columna de la primera fila. Este codigo que he hecho me lo encuentra correctamente si existe nombre, apellido y segundo apellido que busque, pero si no hay coincidencia, se queda en bucle infinito. ¿Como hago para que FIND, al llegar a la ultima celda del rango seleccionado, me devuelva algun codigo de error "no encontrado" y asi poder yo salir del do while/loop presentando un mensaje de "no se encontro persona buscada..."

Option Explicit
Sub BuscaNombre()
'Busca Nombre y apellidos

Dim msg As String
Dim Nombre As String
Dim Apellido As String
Dim SegundoApellido As String
Dim Temp1 As String
Dim Temp2 As String
Dim Encontrado As Boolean

On Error GoTo msg_error

Nombre = InputBox("Introduce Nombre")
Apellido = InputBox("Introduce Apellido")
SegundoApellido = InputBox("Introduce Segundo Apellido")

Rows("1:1").Select

Do
Selection.Find(What:=Nombre, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Temp1 = ActiveCell.Offset(0, 1).Value
Temp2 = ActiveCell.Offset(0, 2).Value
If Temp1 = Apellido And Temp2 = SegundoApellido Then
Encontrado = True
Else
Encontrado = False
End If
Loop While Encontrado = False

msg = MsgBox("Encontrado", vbOKOnly, "Cadena Encontrada...")
Exit Sub
msg_error:
msg = MsgBox(Chr(13) & " Se ha producido un error." & Chr(13) & " Por favor, vuelve a intentarlo. ", vbOKOnly, "Lo sentimos...")
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como evitar este bucle infinito

Publicado por JuanC (792 intervenciones) el 12/10/2007 20:32:39
usa el método Find junto con FindNext
fijate en la ayuda de VBA que tiene un buen ejemplo

Saludos desde Baires, JuanC
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como evitar este bucle infinito

Publicado por Alicia (19 intervenciones) el 13/10/2007 13:31:01
Efectivamente, con FindNext ya lo arregle. Muchas gracias JuanC.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar