Ayuda macro

Hola expertos necesito ayuda con esta macro
Que busca en todas las hojas un valor
Sub Buscarnombre()
Dim Buscar
Dim texto As String, titulo As String
texto = "Ingrese el numero de Cedula o Nombre y Apellido del Prestatario"
titulo = "Busqueda"
Buscar = InputBox(texto, titulo)
If Buscar = "" Then Exit Sub
For Each hoja In Sheets
If hoja.Name <> "Hoja1" Then
With hoja.Range("A2:AA65500")
Set esta = .Find(Buscar)
If Not esta Is Nothing Then
primeracelda = esta.Address
'opcional: mostrar el nbre de la hoja según consulta original.
hoja.Activate
MsgBox hoja.Name
End If
End With
End If
Next hoja
End Sub
Lo que en si necesito es que esta macro me busque pero en 2 celdas en especifico que serian B6 y B7.

1 respuesta

Respuesta
1
Ajustá entonces la línea del Rango:
With hoja.Range("B6:B7")     'en lugar del rango que aparece como A2:AA65500
Saludos
Elsa
Tus mejores opciones en manuales de Macros, desde:
http://es.geocities.com/lacibelesdepunilla/manual_VBA
Reina ya intente eso y no busca nada
Reina ya lo pude hacer solo fue cuestión de poner
With hoja.Range("BB6:B7") 'en lugar del rango que aparece como A2:AA65500
solo funciono colocandole BB y no B.
Pero de todas maneras gracias.
Ahora me gustaría agregarle un mensaje cuando no encuentre nada
te agradecería.
Imaginate tu rango: B6:B7 son 2 celdas nada más, en cambio el rango que estás colocando abarca desde la col B hasta la BB, es decir que estarás buscando en un rango de algo como 52 col... algo estarás haciendo mal o realmente el dato no está en esas 2 celdas.
Lo que está haciendo tu rutina actualmente es buscar un dato si lo encuentra te envía mensaje de la hoja donde se encuentra ... y sigue buscando!
Me parece que si solo necesitas ubicarlo, debieras ajustarla según la que te adjunto (con el rango B6:B7 y lineas nuevas en negrita) enviando un mensaje al finalizar con todas las hojas. Le agregué una instrucción de Exit, para que una vez encontrado el dato finalice la búsqueda.
Sub Buscarnombre()
Dim conta As Byte
Dim Buscar
Dim texto As String, titulo As String
texto = "Ingrese el numero de Cedula o Nombre y Apellido del Prestatario"
titulo = "Busqueda"
Buscar = InputBox(texto, titulo)
If Buscar = "" Then Exit Sub
For Each hoja In Sheets
If hoja.Name <> "Hoja1" Then
With hoja.Range("B6:B7")
Set esta = .Find(Buscar)
If Not esta Is Nothing Then
primeracelda = esta.Address
'opcional: mostrar el nbre de la hoja según consulta original.
hoja.Activate
MsgBox hoja.Name
conta = 1
Exit Sub

End If
End With
End If
Next hoja
If conta = 0 Then MsgBox "No se encontró dato en rango buscado"
End Sub
Pruébala y comentame ...
Reina te comento que no me funciono con lo del rango ("B6:B7") me toco dejarlo con BB y lo del mensaje con todas las hojas tampoco, pero de igual manera así como me quedo es justo lo que necesitaba te agradezco.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas