Búsqueda de un dato en más de una hoja

Saludos, que estés bien, tengo otra consulta, cuento con este código para hacer una búsqueda, pero como lo hago para que me busque en otras hojas, por ejemplo la 3 y la 4, intente colocando el mismo consigo pero con referencia a la otra hoja, pero se desbordo, gracias de antemano
Private Sub CommandButton1_Click()
   Dim i As String
   i = TextBox1.Value
    Application.ScreenUpdating = False
    Hoja5.Select
    ruta = ActiveWorkbook.Path & "\"
    clave = i
    If clave = "" Then Exit Sub
    uf = Range("A65536").End(xlUp).Row
    For fil = 2 To uf
        If Range("B" & fil) = clave Then
            Rows(fil & ":" & fil).Copy
            Hoja6.Select
            ufh = Hoja6.Range("A65536").End(xlUp).Row + 1
            Hoja6.Rows(ufh & ":" & ufh).Select
            ActiveSheet.Paste
            Hoja5.Select
        End If
    Next fil
    Range("A1").Select
    Application.DisplayAlerts = False
    Hoja6.Copy
    ActiveWorkbook.SaveAs Filename:=ruta & clave & ".xls"
    ActiveWindow.Close
Fin:
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
Workbooks("Libro2.xls").Worksheets("Hoja2").Activate

1 Respuesta

Respuesta
1
Tengo una función personalizada que busca en varias hojas (del estilo del buscarv pero permite ir buscando en varios rangos, incluso en hojas distintas), avisame si te sirve y te la paso
Gracias, estaría my agradecido, si me puedes pasa el código
Te paso la función, si tenés duda con alguno de los parámetros o como usar la función avisame,
Saludos
Gfellay
Function BuscarEnVariosRangos(ValorBuscado As Variant, btColumna As Byte, blOrdenado As Boolean, ParamArray mtrR() As Variant)
Dim iteradorR As Variant, Encontrado As Variant
On Error GoTo NoEncontrado
For Each iteradorR In mtrR()
Encontrado = _
Application.WorksheetFunction.VLookup(ValorBuscado, iteradorR, btColumna, blOrdenado)
If Not IsEmpty(Encontrado) Then
BuscarEnVariosRangos = Encontrado
Exit Function
End If
Next iteradorR
BuscarEnVariosRangos = "No encontrado."
Exit Function
NoEncontrado:
If Err.Number = 1004 Then
Resume Next
Else
BuscarEnVariosRangos = Err.Description
End If
End Function
Saludos, gracias por el código, nunca he trabajado con funciones, estas deberían de ir al principio en delacraciones generales, y se debería llamar con un call, y después va la instrucción de pegado.
Estoy haciendo un trabajo de control de facturas, y costos, si quieres te lo puedo enviar para que lo revises y me digas si algunas cosa están mal hechas, o que se pude arreglar.
Gracias de antemano
No, insertá esta función en un módulo, luego desde la hoja la llamás como una función cualquiera del excel, ej/ =buscarEnVariosRangos(tuClave,...)
En caso de querer usarla en Visual, es más o menos lo mismo, la podes llamar con Call o directamente asigandola a una variable de la forma
tuVariable = BuscarEnVariosRangos(...)
Saludos
Gfellay
PD: gracias por tu ofrecimiento pero estoy medio complicado con el tiempo como para comprometerme a revisar tu archivo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas