Tengo una macro, a través de un msgbox me dice, en que hojas del libro está dicho empleado.

Sería posible, modificar esa macro, que me enviara a esas hojas y copiarlas en la hoja 1,

En cada hoja tengo una tienda, y los vendedores que van, pero igual puede ir a la Nike, que está en otra hoja, hay meses que pueden ser 110 tiendas, que está en otra, había pensado en ir hoja por hoja y enviar a los vendedores, a una base de datos y gestionar todo, pero trayendo ese vendedor que está en varios sitios, se gestionaría mejor.

Esta es la macro

Sub()

Dim hj as worksheet

Dim cóntexiste as integer

Dim búsqueda as Rangel

Dim res, consulta as string

Res =" "

Consulta= Sheets ("hoja 1").cella (7,4)

ContExiste=0

For each hj In thiswoork. Worksheets

With hj.usedrange

Set búsqueda=.cells.Find(what:= consulta)

If not búsqueda is nothing then

If hj.name<> ("hoja 1") then

Res= res&vbCrlf&hj.name

ContExiste=1

Setbusqueda=.findnext(busqueda)

End if

End if

End with

If ContExiste=0 then

Msgbox " dato no existe"

Else

Res= "dato encontrado"& vbCrlf &res

Msgbox res

End if

End sub.

1 Respuesta

Respuesta
2

Te dejo tu macro ajustada. Cuando hagas una consulta debieras pegar tu código porque así escrito como estaba tenía muchos errores.

Lo que hace es encontrar en cualquier celda de las hojas el dato que coloques en celda D7 de Hoja1 (colocá el nombre de tu hoja).

Sub consulta()
'ajustada x Elsamatilde
Dim hj As Worksheet
Dim cóntexiste As Integer
Dim búsqueda As Range
Dim res, consulta As String
res = " "
consulta = Sheets("Hoja1").Cells(7, 4)
ContExiste = 0
For Each hj In ThisWorkbook.Worksheets
    With hj.UsedRange
        Set búsqueda = .Cells.Find(what:=consulta)
        If Not búsqueda Is Nothing Then
            If hj.Name <> ("Hoja1") Then
                res = res & vbCrLf & hj.Name
                ContExiste = 1
                Setbusqueda = .FindNext(búsqueda)
            End If
        End If
    End With
    If ContExiste = 1 Then
        res = "dato encontrado" & vbCrLf & res
        MsgBox res
        'como el dato ya fue encontrado debiera salir
        Exit Sub
    End If
Next hj
'si el dato no fue encontrado en ninguna hoja lo notifica
If ContExiste = 0 Then MsgBox " dato no existe"
End Sub

Estás realizando un búsqueda parcial, es decir que encontrará tanto que se llame Alba como Fuentealba o Albamonte, etc.

PD) Te invito a mirar los videos 25 y 29 de mi canal.

Allí comento cómo realizar una búsqueda exacta si luego necesitas algo así. También en el video 16 ;)

Sdos y no olvides valorar las respuestas.

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas