Saltar al contenido

Recommended Posts

publicado

Hola buenas noches.

Tengo la necesidad de en un libro 1 hacer una lista indice de las hojas que contiene otro libro (X),

En mi libro1 tengo una hoja llamada lista. ahí me gustaría poder en listar los nombres de todas las hojas que contiene otro libro. Pero el nombre del libro en la que debo extraer los nombres esta escrito en la celda D2 de mi hoja basic.

Espero me puedan ayudar con alguna opción.

 

Muchas gracias

Libro1Donde va lista.xlsm

publicado

Hola,

Lo importante para lograr eso es la ruta donde se encuentre el libro que va a buscar, es decir; esa ruta debe existir en la sentencia. Como no la trae tu libro de ejemplo te podré ayudar con algo parecido. La sentencia que te comparto no buscará directamente el libro de la celda D2 sino que abrirá el explorador de archivos, manualmente debe seleccionar el libro y posteriormente listará las hojas.

Para tomar el nombre de su hoja BASIC ya solo debe modificar un poco.

Saludos cordiales.

publicado
Sub BuscarYListarHojas()
    Dim ruta As String
    Dim nombreLibro As String
    Dim libro As Workbook
    Dim hojaDestino As Worksheet
    Dim i As Integer
    Dim fd As FileDialog
    Dim rutaCompleta As String

 
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.Title = "Seleccionar archivo"
    fd.Filters.Add "Archivos de Excel", "*.xls; *.xlsx; *.xlsm", 1
    fd.AllowMultiSelect = False

 
    If fd.Show = -1 Then
        rutaCompleta = fd.SelectedItems(1)
    Else
        MsgBox "No se seleccionó ningún archivo.", vbExclamation
        Exit Sub
    End If

 
    On Error GoTo ErrorHandler
    Set libro = Workbooks.Open(rutaCompleta)
    On Error GoTo 0

 
    Set hojaDestino = ThisWorkbook.Sheets("lista")
    
 
    hojaDestino.Cells.Clear
    
 
    For i = 1 To libro.Sheets.Count
        hojaDestino.Cells(i, 1).Value = libro.Sheets(i).Name
    Next i
    
 
    libro.Close False
    
 
    MsgBox "Hojas listadas exitosamente en la hoja 'lista'", vbInformation

    Exit Sub

ErrorHandler:
    MsgBox "No se pudo abrir el libro especificado. Verifique el nombre y la ruta.", vbCritical

End Sub

Recuerde, para ejecutar debe extraer del ZIP

AYUDA EXCEL.zip

publicado
Hace 1 hora, Israel Cassales dijo:
Sub BuscarYListarHojas()
    Dim ruta As String
    Dim nombreLibro As String
    Dim libro As Workbook
    Dim hojaDestino As Worksheet
    Dim i As Integer
    Dim fd As FileDialog
    Dim rutaCompleta As String

 
    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    fd.Title = "Seleccionar archivo"
    fd.Filters.Add "Archivos de Excel", "*.xls; *.xlsx; *.xlsm", 1
    fd.AllowMultiSelect = False

 
    If fd.Show = -1 Then
        rutaCompleta = fd.SelectedItems(1)
    Else
        MsgBox "No se seleccionó ningún archivo.", vbExclamation
        Exit Sub
    End If

 
    On Error GoTo ErrorHandler
    Set libro = Workbooks.Open(rutaCompleta)
    On Error GoTo 0

 
    Set hojaDestino = ThisWorkbook.Sheets("lista")
    
 
    hojaDestino.Cells.Clear
    
 
    For i = 1 To libro.Sheets.Count
        hojaDestino.Cells(i, 1).Value = libro.Sheets(i).Name
    Next i
    
 
    libro.Close False
    
 
    MsgBox "Hojas listadas exitosamente en la hoja 'lista'", vbInformation

    Exit Sub

ErrorHandler:
    MsgBox "No se pudo abrir el libro especificado. Verifique el nombre y la ruta.", vbCritical

End Sub

Recuerde, para ejecutar debe extraer del ZIP

AYUDA EXCEL.zip 22.11 kB · 0 descargas

Hola Israel:

Muchas gracias por su pronta respuesta y guia.

Reralizare los ajustes para hacerlo, pero el archivo esta muhco mejor, ya que puedo seleccionar diferentes libros y asi extraer el nombre de las hojas.

Saludos cordiales.

Mariano

Conéctate para comentar

Podrás dejar un comentario después de conectarte



Conéctate ahora
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.