Buscador de Hojas Excel VBA
Solicito de su ayuda para poder realizar un Buscador de Hojas en Excel mediante un Macro, el hecho es que manejo un libro en el cual almaceno proyectos uno por cada hoja (nombro cada hoja con un identificador "fecha" + "numero de proyecto".
Y como es de esperarse en ocasiones necesito hacer una consulta de algún proyecto y en la actualidad los proyectos ya se han acumulado en demasía y hacer un búsqueda ya me resulto complicado, ademas quiero que la búsqueda solo se realice con respecto al proyecto sin que intervenga la fecha, por ejemplo.
la hoja de llama 03/03/091234.
Y quiero que busque 1234 y no todo el texto y que active la hoja 03/03/091234. Y el prbleca es que a veces nombro
03/0912356
por lo que la cadena no mantine una misma longitud pero el proyecto es único
Hasta el momento llevo esto.
Sub Macro1()
'Declaro Variables
Dim HojaBuscada As String
Dim HojasTotal() As String
Dim i As Integer
ReDim HojasTotal(Sheets.Count) As String
'Suponemos que estamos buscando el pryecto 1234 y la hoja se llama 03\03\091234
HojaBuscada = "1234"
'Recorro todas las hojas del libro y registro sus nombres
For i = 1 To Sheets.Count
HojasTotal(i) = Sheets(i).Name
Next
'Genero la busqueda
For i = 1 To Sheets.Count
If StrComp(Mid(HojasTotal(i), WorksheetFunction.Search(HojaBuscada, HojasTotal(i), 1), Len(HojaBuscada)), HojaBuscada, vbTextCompare) = 0 Then
Sheets(i).Select
Range("A1").Select
Exit Sub
End If
Next
MsgBox ("No se Encontro el Proyecto")
End Sub
El problema es que en la parte "Genero la búsqueda" siempre se para en la primera iteración y me envía a la primera hoja y no encuentro el error, así que si me pudiera orientar acerca de que estoy haciendo mal o alguna sugerencia diferente de como proceder se lo agradecería.
Y como es de esperarse en ocasiones necesito hacer una consulta de algún proyecto y en la actualidad los proyectos ya se han acumulado en demasía y hacer un búsqueda ya me resulto complicado, ademas quiero que la búsqueda solo se realice con respecto al proyecto sin que intervenga la fecha, por ejemplo.
la hoja de llama 03/03/091234.
Y quiero que busque 1234 y no todo el texto y que active la hoja 03/03/091234. Y el prbleca es que a veces nombro
03/0912356
por lo que la cadena no mantine una misma longitud pero el proyecto es único
Hasta el momento llevo esto.
Sub Macro1()
'Declaro Variables
Dim HojaBuscada As String
Dim HojasTotal() As String
Dim i As Integer
ReDim HojasTotal(Sheets.Count) As String
'Suponemos que estamos buscando el pryecto 1234 y la hoja se llama 03\03\091234
HojaBuscada = "1234"
'Recorro todas las hojas del libro y registro sus nombres
For i = 1 To Sheets.Count
HojasTotal(i) = Sheets(i).Name
Next
'Genero la busqueda
For i = 1 To Sheets.Count
If StrComp(Mid(HojasTotal(i), WorksheetFunction.Search(HojaBuscada, HojasTotal(i), 1), Len(HojaBuscada)), HojaBuscada, vbTextCompare) = 0 Then
Sheets(i).Select
Range("A1").Select
Exit Sub
End If
Next
MsgBox ("No se Encontro el Proyecto")
End Sub
El problema es que en la parte "Genero la búsqueda" siempre se para en la primera iteración y me envía a la primera hoja y no encuentro el error, así que si me pudiera orientar acerca de que estoy haciendo mal o alguna sugerencia diferente de como proceder se lo agradecería.
1 respuesta
Respuesta de Elsa Matilde
1