Macro para ir rápidamente a una hoja de un libro Excel
Attribute VB_Name = "Módulo1"
Sub ejemplo()
'por luismondelo y ValeroASM
Dim Ufil, Ucol, Fila As Integer
Dim ExisteHoja As Boolean
Dim dato, NombreHoja As String
'Cambia el sistema y no son necesarias algunas líneas de intercepción de errores
For Each Hoja In ActiveWorkbook.Sheets
If LCase(Hoja.Name) = "buscador" Then
'En vez de eliminar la hoja borramos el contenido
Ufil = Hoja.Range("A" & Hoja.Cells.Rows.Count).End(xlUp).Row
Ucol = Hoja.Cells(1, Hoja.Cells.Columns.Count).End(xlToLeft).Column
If Ufil < 2 Then Ufil = 2
Hoja.Range(Hoja.Cells(2, 1), Hoja.Cells(Ufil, Ucol)).ClearContents
End If
Next
dato = InputBox("INGRESA LA BUSQUEDA??")
If dato = "" Then Exit Sub
dato = UCase(dato)
Do
ExisteHoja = False
NombreHoja = LCase(InputBox("INGRESA LA HOJA DONDE BUSCAR??", "HOJA DONDE SE BUSCA", "DATOS"))
If NombreHoja = "buscador" Then
Respuesta = MsgBox("No se puede buscar en la hoja Buscador", vbInformation + vbOKOnly, "Búsqueda no permitida")
ElseIf NombreHoja <> "" Then
For Each Hoja In ActiveWorkbook.Sheets
If LCase(Hoja.Name) = NombreHoja Then
ExisteHoja = True
Exit For
End If
Next
If Not ExisteHoja Then
Respuesta = MsgBox("No existe la hoja " & NombreHoja, vbCritical + vbOKOnly, "NO existe la hoja.")
End If
End If
Loop Until ExisteHoja Or NombreHoja = ""
If NombreHoja = "" Then Exit Sub
Fila = 2
'Lo siguiente es para que no se vean parpadeos
Application.ScreenUpdating = False
Hoja.Select
For Each celda In ActiveSheet.UsedRange
If UCase(celda) Like "*" & dato & "*" Then
Sheets("buscador").Cells(Fila, 1).Value = Hoja.Name
Sheets("buscador").Cells(Fila, 2).Value = celda.Address(False, False)
Sheets("buscador").Cells(Fila, 3).Value = celda.Value
Sheets("buscador").Cells(Fila, 4).Value = celda.Offset(0, 1).Value
Sheets("buscador").Cells(Fila, 5).Value = celda.Offset(0, 2).Value
Sheets("buscador").Cells(Fila, 6).Value = celda.Offset(0, 3).Value
Sheets("buscador").Cells(Fila, 7).Value = celda.Offset(0, 4).Value
Fila = Fila + 1
End If
Next
Sheets("buscador").Select
ActiveSheet.Columns("a:g").EntireColumn.AutoFit
Range("A1").Select
Application.ScreenUpdating = True
MsgBox "los encuentros están anotados en la hoja buscador"
End Sub
Pero en mi caso tengo una hoja concentradora de todos los numero de referencia son casi 2500 usuarios utilizo hojas 1, 1a, 2, 2a, ... 1980 1981 y para encontrar la cuenta de un usuario si es un poco tardado la hoja principal se llama cntrt