¿Cómo puedo corregir error 9 en excel y agregar un campo?

Dim buscar
Dim texto As String, titulo As String
texto = "Introduzca su búsqueda"
titulo = "Búsqueda en todas las hojas del libro"
buscar = InputBox(texto, titulo)
If buscar = "" Then Exit Sub
For Each hoja In Sheets
If hoja.Name <> "Principal" Then
With hoja.Range("A2:AA65500")
hoja.Activate
Set esta = .Find(buscar, LookIn:=xlValues, lookat:=xlWhole)
If Not esta Is Nothing Then
primeracelda = esta.Address
Do
esta.Select
sino = MsgBox("Estás en hoja " & hoja.Name & " ¿Deseas continuar la búsqueda?", vbYesNo)
If sino <> vbYes Then Sheets("Principal").Select: Exit Sub
Set esta = .FindNext(esta)
Loop While Not esta Is Nothing And esta.Address <> primeracelda
End If
End With
End If
Next hoja
End Sub

buenas tardes, al transcirbir este programa de una compañera, cuando lo ejecuto me corre bien pero al darle a no seguir buscado me da error 9 de depuración valor fuera de rango y creo que es porque no tiene definido el no, donde me lanza el depurador el error lo he puesto en negrita y subrayado, también me gustaría saber como poder poner un campo mas donde pudiera buscar poniendo solo las tres primeras letras o los tres primeros números sin tener que coincidir toda la celda, gracias.

1 Respuesta

Respuesta
1

Tienes que tener en tu excel una hoja que se llame "Principal", lo que hace la macro es que si seleccionas "No", trata de seleccionar la hoja llamada "Principal", pero como no la tienes te envía el error.

Crea una hoja llamada "Principal" y ejecuta nuevamente la macro

Saludos. Dante Amor

No olvides finalizar

hola:

muchas gracias resulto ser eso, como podría resolver las otras cuestiones, para poder buscar por campos que contenga alguna letras o alguna cantidad, consigo que me busque si contiene el nombre o la cantidad exacta de la celda, pero si varia no lo da por buscado, y tampoco logro que se quede en la hoja buscada, si no que vuelve a principal, he probado a dejarle solo comillas pero me vuelve a dar el error 9, podría ayudarme con estas cuestiones, muchas gracias de antemano.

Momento, una pregunta a la vez.

Si quieres que el contenido de la celda sea exacto tienes que poner esto

Set esta = .Find(buscar, LookIn:=xlValues, lookat:=xlWhole)

Si quieres que busque una parte dentro de la celda, tienes que poner esto:

Set esta = .Find(buscar, LookIn:=xlValues, lookat:=xlPart)

Finaliza esta pregunta y crea una nueva por cada petición.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas