Ir ao conteúdo
  • Cadastre-se

Excel Buscar nome das Planilhas em um Arquivo fechado via vba


Posts recomendados

Bom dia a todos!

 

Sou novo no Clube e gostaria da ajuda de vocês para o seguinte problema em VBA.

Preciso carregar uma ListBox com o nome das Planilhas de determinadas Pastas de Trabalho, o problema é que preciso fazer isso sem ter que abrir as referidas Pastas.

Ou seja, preciso dizer para minha Macro: Busque nas Pastas tais o nome de todas as Planilhas e me Liste no ListBox.

Acho que isso se faz através do ThisWorkBook, mas não consegui descobrir como.

 

Sem alguém puder me dar uma luz.

 

Desde já agradeço

 

Link para o comentário
Compartilhar em outros sites

@Zeno Bem vindo ao Fórum.

 

Olha, sem abrir as pastas de trabalho eu não consigo vislumbrar uma forma de pegar os nomes das planilhas não...

 

Agora, se você abrir as pastas, apenas pegar o nome das planilhas e fechar, já se torna uma tarefa relativamente simples.

 

a propriedade ThisWorkBook serviria pra você extrair informações da pasta de trabalho atual, a que contém a sua macro, não para pastas de trabalho externas.

 

Link para o comentário
Compartilhar em outros sites

Obrigado pela resposta Charley, mas deixe te mostrar o seguinte:


 

Sub ImportaSemAbrir()
Dim Caminho As String, Arquivo As String
Caminho = "\\Usuarios\dados\Clientes\"

Arquivo = "Tabela1.xlsm"



ThisWorkbook.Names.Add "intervalo", RefersTo:="='" & Caminho & "[" & Arquivo & "]Plan2'!$A$1:$F$10"



With Sheets("Plan2")
           .[A1:F10] = "=intervalo"

           .[A1:F10].Copy
           Sheets("Plan1").Range("A1").PasteSpecial xlPasteValues
           .[A1:F10].Clear
End With



End Sub

Com esta Macro eu consigo copiar os dados da Planilha Fechada "Tabela1.xlsm" sem abri-la, imaginei que conseguiria fazer isso também com os nomes das Planilhas desta mesma Pasta.

 

Link para o comentário
Compartilhar em outros sites

7 horas atrás, Zeno disse:

Obrigado pela resposta Charley, mas deixe te mostrar o seguinte:


Sub ImportaSemAbrir()
Dim Caminho As String, Arquivo As String
Caminho = "\\Usuarios\dados\Clientes\"

Arquivo = "Tabela1.xlsm"



ThisWorkbook.Names.Add "intervalo", RefersTo:="='" & Caminho & "[" & Arquivo & "]Plan2'!$A$1:$F$10"



With Sheets("Plan2")
           .[A1:F10] = "=intervalo"

           .[A1:F10].Copy
           Sheets("Plan1").Range("A1").PasteSpecial xlPasteValues
           .[A1:F10].Clear
End With



End Sub

 

Com esta Macro eu consigo copiar os dados da Planilha Fechada "Tabela1.xlsm" sem abri-la, imaginei que conseguiria fazer isso também com os nomes das Planilhas desta mesma Pasta.

 

 

Bacana esse código. Tente usar o botão "code" na próxima vez para inserir seu código.

 

Mas como eu disse, a propriedade ThisWorkBook refere-se à pasta atual de trabalho. Nesse caso, você adicionou o nome "intervalo" à sua pasta de trabalho atual.. Só que o nome faz referência à uma pasta externa...

 

Enfim... eu quebrei a cabeça por alguns minutos aqui e não consegui pegar o nome das planilhas sem abrir o arquivo externo.

 

Espero que alguém possa te ajudar.

 

Abraço.

Link para o comentário
Compartilhar em outros sites

22 minutos atrás, Zeno disse:

Não Charley, o nome "intervalo" é colocado na Pasta de origem, não na atual, na atual coloca os valores contidos dentro do nome "intervalo".

 

Faz o seguinte: Rode a sua macro. Quando terminar, vá em Fórmulas>Gerenciador de Nomes

 

Você verá que o nome foi criado na pasta de trabalho atual, a que roda a macro, e não na outra, cujos dados foram copiados.

 

É muito importante você tentar entender o que o seu código está fazendo, mesmo quando você copiar o código de alguém e ele funcionar completamente. Nem sempre é possível entender, mas tentar ajuda, porque assim você aprende e gasta menos tempo ao desenvolver suas macros.

 

Abraço.

Link para o comentário
Compartilhar em outros sites

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