Repetir Atrás de un Case

Hola!!

Gracias por ayudarme, es una sola pequeña pregunta, espero y me puedan ayudar,

Tengo este código:

Sub buscar()
 Cells.Find(What:=Range("L9").Value, After:=Range("A3"), LookIn:=xlFormulas, LookAt _
 :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
 False, SearchFormat:=False).Activate
 Dim pregunta
  pregunta = MsgBox("Deseas la abrir la ficha de: " & ActiveCell.Value, vbYesNo)
 Select Case pregunta
 Case 6:
 Workbooks.Open ("E:\USERDATA\EduardoChimal\artistas\" & ActiveCell.Value)
 Case 7:
 Cells.Find(What:=Range("L9").Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
 :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
 False, SearchFormat:=False).Activate
 End Select
End Sub

Cuando entra a Case 7 necesito que haga de nuevo esa búsqueda, pero que regrese a "pregunta" para que lo vuelva a ejecutar por si el archivo que sigue si lo quiere abrir. Este va a terminar hasta que ya haya terminado la búsqueda de la columna A y salga del Sub.

Espero me haya explicado.

Muchas gracias por su ayuda

Saludos

Respuesta
1

No es una pequeña pregunta, hay que cambiar la lógica de tu macro, lo mejor es que me digas exactamente lo que necesitas para reconstruir tu macro. Saludos. Dam

Necesito que en la celda "L9" se escriba el texto que se desea buscar en la columna "A", por ejemplo si escribe luis que le pregunte si desea abrir el archivo, si le pone que no que siga buscando si se encuentra otro luis... y vuelve a preguntar que si lo desea abrir, y así hasta que quiera abrir un luis... si se acaba la columna se salga de la búsqueda y ya no haga nada.

Espero me haya explicado mejor.

Saludos

Gracias de nuevo dam

Si desea abrir el archivo luis, entonces, que abra el archivo luis y que se detenga el proceso, es decir, ¿qué ya no vuelva a preguntar si quiere abrir otra vez luis?

Saludos. Dam

Así es... si encuentra el primer luis, se detiene el proceso de búsqueda, sino que siga buscando, cuando se terminen los luis, acaba la busqueda

Te cambio la macro:

Sub buscar()
'busca y abre archivo
'por.dam
t = Range("L9")
Set r = Range("A:A")
Set c = r.Find(t)
If Not c Is Nothing Then
    ncell = c.Address
    Range(ncell).Select
    Do
        If MsgBox("Deseas abrir la ficha de: " & ActiveCell.Value, vbYesNo) = vbYes Then
            Workbooks.Open ("E:\USERDATA\EduardoChimal\artistas\" & ActiveCell.Value)
            Exit Do
        Else
            Set c = r.FindNext(c)
            If Not c Is Nothing And c.Address <> ncell Then
                Range(c.Address).Select
            End If
        End If
    Loop While Not c Is Nothing And c.Address <> ncell
End If
End Sub

El rango para buscar está en esta línea

Set r = Range("A:A")

Si quieres ampliarlo a toda la hoja, puedes poner lo siguiente

Set r = Cells

El inconveniente, es que también te va a encontrar el valor que tienes en L9.

Saludos. Dam
Si es lo que necesitas.

Añade tu respuesta

Haz clic para o