Necesito Una Macro muy simple.

Muy Buenas Tardes!, necesito por favor si es posible que me ayudes con un pequeño código. A parentemente no es complicado, pero no he encontrado la forma de realizarlo.
Estoy trabajando con un libro de excel, el mismo contiene una cantidad importante de hojas, ok. Concideremos ahora un UserForm, en el mismo se visualiza un CommandButton vinculado a un TexBox, ok. La Idea es que al ingresar en el TexBox caracteres alfanuméricos que identifican a una de las tantas hojas, (aleatorio) y al presionar el CommandButton el sistema me direccione a la hoja en cuestión, ¿se entiende?
Muchas Gracias!
Te Deseo Mucha Suerte.
Saludos!

1 Respuesta

Respuesta
1
Yo en tu lugar insertaría un ListBox el cual lo llenaría con los nombres de hojas existentes y al evento Click del ListBox le indico que se pase a la hoja seleccionada.
Utiliza este código en el evento Activate del UserForm:
Dim SheetData() As String
Dim ShtCnt As Integer
Dim ShtNum As Integer
Dim Sht As Object
Dim ListPos As Integer
Set OriginalSheet = ActiveSheet
ShtCnt = ActiveWorkbook.Sheets.Count
ReDim SheetData(1 To ShtCnt, 1 To 4)
ShtNum = 1
For Each Sht In ActiveWorkbook.Sheets
If Sht.Name = ActiveSheet.Name Then _
ListPos = ShtNum - 1
SheetData(ShtNum, 1) = Sht.Name
Select Case TypeName(Sht)
Case "Hoja de trabajo"
SheetData(ShtNum, 2) = "Hoja"
SheetData(ShtNum, 3) = _
Application.CountA(Sht.Cells)
Case "Chart"
SheetData(ShtNum, 2) = "Gráfico"
SheetData(ShtNum, 3) = "N/A"
Case "DialogSheet"
SheetData(ShtNum, 2) = "Diálogo"
SheetData(ShtNum, 3) = "N/A"
End Select
If Sht.Visible Then
SheetData(ShtNum, 4) = "Verdadero"
Else
SheetData(ShtNum, 4) = "Falso"
End If
ShtNum = ShtNum + 1
Next Sht
With ListBox1
.ColumnWidths = "100 pt;30 pt;40 pt;50 pt"
.List = SheetData
.ListIndex = ListPos
End With
Utiliza este para el evento Click del ListBox:
Sheets(ListBox1. Value). Activate
Si no te parece, puedes utilizar este código y modificarlo a tus necesidades.
[email protected]
Hola Muy Buenas Noches!, primero y antes que nada quiero agradecerte por haber contestado, gracias por tu disponibilidad.
En segundo lugar molestarte nuevamente para que me indiques como debo introducir el código y en donde pongo el nombre de las hojas a mostrar.
La verdad estoy un poco crudo en el tema, estoy buscando información y me he puesto a estudiar, la verdad es muy apasionante.
En el UserForm debes insertar un ListBox. En el area del UserForm das doble click con el mouse; en el evento Activate que aparece insertas el código desde Dim SheetData() As String, hasta End With.
Vuelves al UserForm y das doble Click sobre el ListBox y digitas Sheets(ListBox1. Value). Activate.
Y listo.
[email protected]
¿Hola, cómo estás?, espero que muy bien!, disculpa que te moleste tanto, pero tengo una última duda, ¿cómo confecciono la lista?
Con el código anterior se llena la lista automáticamente.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas