Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como importar mais de uma planilha.

Gostaria de saber se tem alguma maneira de importar mais de uma planilha, ou se é possível importar todas planilhas de uma pasta.

3 respostas

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.

solução!

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