Gostaria de saber se tem alguma maneira de importar mais de uma planilha, ou se é possível importar todas planilhas de uma pasta.
Gostaria de saber se tem alguma maneira de importar mais de uma planilha, ou se é possível importar todas planilhas de uma pasta.
Hudson, tudo bem ?
Se não me engano, caso seu projeto tenha todas as planilhas, você consegue importar de uma vez, caso contrário receio que não.
Espero ter ajudado.
Abraços
Pois é não tem, eu queria que ele fosse em um local, e percorresse todas a planilhas de uma pasta importando todas, criaria um registo dos nomes da planilhas em uma coluna, e toda vez que fosse abrir o arquivo percorresse a coluna perguntando se tem o nome do arquivo, mas não sei se tem como criar um loop para pegar arquivo com nomes variados.
Olá Hudson, tudo bem?
Acabei vendo seu post só agora, desculpe a demora. Segue possível solução para o seu problema:
Para que os comandos funcionem, você precisará habilitar a biblioteca Microsoft Scripting Runtime.
Substitua as partes do código que possuem comentários, seguindo a instrução contida neles. Reveja também o caminho para os arquivos, coloque-os de acordo com sua máquina e pastas.
Qualquer dúvida dá um grito.
Dim FSO As New FileSystemObject
Dim NomeArq, FilePath As String
Dim myFolder As Folder
Dim myFile As File
Public Sub SalvaNomePlanilha(ByVal myPath As String)
Set myFolder = FSO.GetFolder(myPath)
For Each myFile In myFolder.Files
NomeArq = myFile.Name
'Aqui coloque seu comando para importar a planilha, passando a variável NomeArq como parâmetro
'Crie loop para salvar o nome das planilhas nas linhas e colunas que queira da planilha
Next
End Sub
Public Sub TestaNomePlanilha()
Dim NomeSalvo As String
Sheets(indice_planilha).Activate 'No lugar de indice_planilha coloque o índice da sua planilha que guarda os nomes dos arquivos ou o nome entre aspas ("")
Set myFolder = FSO.GetFolder(FilePath)
Do Until ActiveSheet.Cells(linha_nome_arq, coluna_nome_arq) = "" 'No lugar de linha_nome_arq e coluna_nome_arq coloque a linha e coluna, respectivamente, que guarda os _
nomes das planilhas
For Each myFile In myFolder.Files
NomeArq = myFile.Name
NomeSalvo = ActiveSheet.Cells(linha_nome_arq, coluna_nome_arq).Value
If NomeArq = Dir(FilePath & NomeSalvo) Then
'Comando para importar a planilha, passando a variável NomeArq como parâmetro
Exit For
End If
Next
linha_nome_arq = linha_nome_arq + 1
Loop
End Sub
Private Sub CommandButton1_Click()
FilePath = "C:\Users\" & Environ("USERNAME") & "\Desktop\Pasta\"
SalvaNomePlanilha (FilePath)
TestaNomePlanilha
End Sub