Saltar al contenido

macro para extraer los nombres de las hojas de diferentes libros de calculo


Recommended Posts

publicado

Saludos, lo que se requiere es crear una lista con los nombres de las hojas de cada libro de excel, dividido ese listado por el nombre del libro, "algo muy similar a un listado de árbol de archivo de windows" pero con las hojas del libro de excel. si se pudiera hacer para varios archivos a la vez seria genial. 

publicado

Hola expongo otra forma de enumerar las hojas sin abrir el libro, de todas la de Hector es mucho mas rapida y sencilla

 

Public Sub ListarHojas()
    Dim FSO As Object, oShell As Object, XDoc As Object, ListNode As Object
    Dim SourceFile As String, sZipPath As String, sTempPath As String, sName As String

    SourceFile = "C:\Users\leandro\Desktop\Libro1.xlsm"
    
    Set FSO = CreateObject("scripting.filesystemobject")
    Set oShell = CreateObject("Shell.Application")
    
    sName = Mid(SourceFile, InStrRev(SourceFile, "\") + 1)
    sName = Left$(sName, InStrRev(sName, ".") - 1)
    
    sTempPath = Environ("Temp")

    sZipPath = sTempPath & "\" & sName & ".zip"
    
    FSO.CopyFile SourceFile, sZipPath, True
    
    If Len(Dir(sTempPath & "\workbook.xml")) Then Kill sTempPath & "\workbook.xml"
    
    oShell.Namespace(Environ("Temp") & "\").copyhere sZipPath & "\xl\workbook.xml", 4

    Set XDoc = CreateObject("Msxml2.DOMDocument")
    XDoc.async = False: XDoc.validateOnParse = False
    XDoc.Load (sTempPath & "\workbook.xml")
    
    For Each ListNode In XDoc.SelectNodes("/workbook/sheets/sheet")
        Debug.Print ListNode.Attributes.getNamedItem("name").NodeValue
    Next

    Kill sTempPath & "\workbook.xml"
    Kill sZipPath
    
End Sub

 

publicado

Revisad el adjunto.

Válido para cualquier número de carpetas y archivos.

Pulsar sobre la flecha azul y seguid vuestros instintos.

Si no funciona, agrandar la imagen de la hoja menú para ver las referencias necesarias. 

He utilizado el método de Héctor Miguel para obtener el nombre de las hojas.

Índice.xls

  • 3 weeks later...
publicado

Tema resuelto:

SALUDOS, Y MUCHAS GRACIAS!! esta perfecta Marco Antonio, justo lo que necesitaba muy practica y directa y perfecto que genera una hoja con los nombres que contiene dicha carpeta y en lista las hojas de cualquier libro de excel.

Una disculpa por la tardanza pero estaba ocupado.

 

publicado
En 17/5/2016 at 12:03 , Macro Antonio dijo:

Revisad el adjunto.

Válido para cualquier número de carpetas y archivos.

Pulsar sobre la flecha azul y seguid vuestros instintos.

Si no funciona, agrandar la imagen de la hoja menú para ver las referencias necesarias. 

He utilizado el método de Héctor Miguel para obtener el nombre de las hojas.

Índice.xls

Gracias esta perfecta!

  • Silvia bloqueó este tema

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • 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.