Cómo evito un bucle infinito?
Junto con saludarles, vengo en pedirles ayuda con un procedimiento que escribí, pero que me genera un bucle infinito, el que no puedo reparar.
El procedimiento que necesito implementar, consiste en verificar la existencia de los códigos de clientes, ubicados en la columna “B” de la hoja “concrecion”, en la columna “A” de la hoja “clientes”. Si estos no aparecen en la hoja “clientes”, necesito insertar un indicador en la hoja “concreción”, para este caso, una “X” en la misma fila, columna “D”, por cada código que no se encuentre en la hoja “clientes”.
Sub nclientes()
Dim s1, s2 As Single
Dim u1, u2 As Range
Dim k1 As Integer
s1 = Timer()
'ubico cursor en hoja con los datos a buscar y comparar
Sheets("Concrecion").Select
Range("B2").Select
Do While Not IsEmpty(ActiveCell) 'hacer mientras no estén vacías
Set u1 = ActiveCell 'almacena rango
k1 = ActiveCell.Value 'guarda contenido a buscar
Sheets("Clientes").Select 'camia a la hoja donde buscar v1
Range("A1").Select
Do Until ActiveCell.Value = k1 'hace hasta ser igual a k1
If ActiveCell.Value = "" Then 'si celda vacía
u1.Offset(0, 2).Value = "X" 'imprime en 2 celdas a la derecha de la analizada, en hoja" concretado", para indicar que esta no se encuentra en hoja "clientes"
Exit Do 'finaliza ciclo para pasar a la siguiente celda en hoja "concrecion"
Else
ActiveCell.Offset(1, 0).Select 'de lo contrario, pasa a la siguiente celda de hoja "clientes" para continuar buscando
End If
Loop '2
Sheets("Concrecion").Select
U1.Offset(1, 0).Select 'pasa a la siguiente celda de la hoja "concreción" paraanalizar siguiente cliente
Loop '1
s2 = Timer()
MsgBox ("Procedimiento ejecutado en " & s2 - s1 & "Seg.")
End Sub
Como se darán cuenta, utilizo un código bien sencillo, no tengo mucha experiencia en VBA, así que si es posible hacer este procedimiento.