Ir ao conteúdo

Excel vba ler nome de arquivo e nome guia de planilhas num diretório


Ir à solução Resolvido por Wendell Menezes,

Posts recomendados

Postado

Bom dia povo!

Como ficaria um vba que pode ler o nome da planilha com nome das guias (que tem quantidade aleatórias) das planilhas num diretório?

 

EX:

C:\plalinhas

planilha1.xls com guia com nome1 nome2 nome 3 nome4 nome5

planilha2.xls com guia com nome1 nome2 nome 3 nome4

 

O resultado tem que ficar como na planilha matriz em anexo.

matriz.xlsx

  • Solução
Postado

Bom dia,

 

Ficaria assim (alterar o valor da variável folder para a pasta onde estão os arquivos Excel a serem lidos):

 

Sub GET_SHEET_NAMES()

Dim FSO     As Object
Dim Folder  As String
Dim File    As Object
Dim wb      As Workbook
Dim ws      As Worksheet
Dim LR      As Long

Set FSO = VBA.CreateObject("Scripting.FileSystemObject")
Folder = "C:\Users\PC\Desktop"

Application.DisplayAlerts = False

For Each File In FSO.GetFolder(Folder).Files
    If InStr(1, LCase(File), ".xls") > 0 And InStr(1, LCase(File), "$") = 0 And File.Name <> ThisWorkbook.Name Then
        Set wb = Workbooks.Open(File, UpdateLinks:=False)
        With ThisWorkbook.ActiveSheet
            LR = .Cells(Rows.Count, 1).End(xlUp).Row + 1
            For Each ws In wb.Worksheets
                .Cells(LR, 1) = wb.Name
                .Cells(LR, .Cells(LR, Columns.Count).End(xlToLeft).Column + 1) = ws.Name
            Next
        End With
        wb.Close False
    End If
Next

End Sub

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...