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

1 Respuesta

Respuesta

Explícame qué quieres hacer y te hago una macro nueva.

Quieres ir a una hoja u obtener datos de la hoja.

Tengo varias respuestas similares. Lo más efectivo es ir hoja por hoja y buscar con el método

Find( )

Te dejo algunos ejemplos:

Como puedo modificar esta macro

Como puedo modificar esta macro para que busque todos los nombres iguales

Macro para buscar un dato en todas las hojas

Buscar y filtrar información de diferentes hojas a una

Sal u dos

si te mando mi hoja del proyecto  seria un poco mejor,  espero un mensaje tuyo a mi correo  [email protected] para poder mandarte  el libro,  tu  lo analizas para un mejor resultado 

eE la hoja cntrt esta el listado de los clientes y cada cliente tiene una hoja con el numero de registro  No reg =1 Nombre= javier entonces la hoja es 1 deseo una macro para ir a dicha hoja No 1 . En estos registros  hay 1-a , 1-b , ... 180, 180-a ,,, 1220,1221,1221-a .Deseo una macro vaya directamente a una  hoja en especial una especie de vinculo entre hoja . por que vínculos de contrt y hoja en especifico  si lo tengo pero cuando estoy en otra hoja la necesito  y no accedo con la misma rapidez 

Sigo sin entender, podrías ser más gráfico con tu ejemplo

Bueno el proyectos es este  es una hoja de cobros altas y modificaciones 

Altas solo con el número de contrato ese, cobros  y al momento del impresión es sobre un formato ya impreso, cambios cada que se cobra  actualizar el Edo. de Cta. del cliente  y en el listado Gral.  pero todo esta en proyecto,  pero como  ya estoy capturando datos deseo una macro parar ir a la hoja en cuestión ejemplo  hoja 285 y en esa hoja esta el Edo de Cta. del cliente. y hacer las modificaciones  a mano (macro esta en proceso) en la hoja cntrt actualizar la fecha de pago y hacer la impresión  del recibo  todos eso desde una solo macro . la macro que pedía es  como la función de la techa "f5" ir a una hoja y celda específica para hacer el cambio manual pero  mejor te mando el proyecto lo analizas me dices que se hace  y si hay un pago por ayudarme  a hacer este proyecto.

Envíame tu archivo para revisarlo. Me explicas con un ejemplo lo que necesitas.

Envíame un archivo "modelo" no me vayas a enviar un archivo con 200 hojas, solamente envíame un archivo con un ejemplo y después lo adaptas a tu archivo.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “smallcoffee

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas