Seleção de arquivos, pastas e salvar arquivos com o FileDialog VBA

Seleção de arquivos, pastas e salvar arquivos com o FileDialog VBA

Objetivo: Demonstrar o uso do objeto FileDialog para seleção de arquivos, pastas e salvar arquivos.

//

Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

O objeto fileDialog tem por função permitir de forma simples a utilização dos objetos do Windows referentes a conhecida janela de seleção de arquivos, pasta e salvar arquivos.

Este objeto é muito útil para permitir a interação com o usuário, por exemplo: você tem uma planilha que realiza a importação de dados de um arquivo texto e abre ele em colunas e depois gera um relatório. Com esta função você pode permitir que o usuário selecione o arquivo texto através de um atalho na própria planilha e que a importação seja disparada assim que for selecionado o arquivo.

No próprio código fonte eu coloquei a explicação de cada um dos procedimentos passo-a-passo conforme abaixo:

'Procedimento para salvar arquivos
Sub lsSalvar()
    Dim fDlg    As FileDialog

    Set fDlg = Application.FileDialog(FileDialogType:=msoFileDialogSaveAs)

    'Nome padrão para salvar o arquivo
    fDlg.InitialFileName = ActiveWorkbook.Name

    fDlg.Show
End Sub

'Procedimento para selecionar arquivos
Sub lsSelecionarArquivo()
    Dim fDlg As FileDialog
    Dim lArquivo As String

    'Chama o objeto passando os parâmetros
    Set fDlg = Application.FileDialog(FileDialogType:=msoFileDialogOpen)
    With fDlg
        'Alterar esta propriedade para True permitirá a seleção de vários arquivos
        .AllowMultiSelect = False

        'Determina a forma de visualização dos aruqivos
        .InitialView = msoFileDialogViewDetails

        'Filtro de arquivos, pode ser colocado mais do que um filtro separando com ; por exemplo: "*.xls;*.xlsm"
        .Filters.Add "Texto", "*.txt", 1

        'Determina qual o drive inicial
        .InitialFileName = "C:\"
    End With

    'Retorna o arquivo selecionado
    If fDlg.Show = -1 Then
        lArquivo = fDlg.SelectedItems(1)
        MsgBox "O arquivo selecionado está em: " & lArquivo
        Cells(5, 5).Value = lArquivo
    Else
        MsgBox "Não foi selecionado nenhum arquivo"
    End If
End Sub

'Procedimento para salvar arquivos
Sub lsSelecionarPasta()
    Dim fDlg    As FileDialog
    Dim lPasta  As String

    Set fDlg = Application.FileDialog(FileDialogType:=msoFileDialogFolderPicker)

    'Retorna a pasta selecionada
    If fDlg.Show = -1 Then
        lPasta = fDlg.SelectedItems(1)
        MsgBox "A pasta selecionada foi: " & lPasta
        Cells(2, 5).Value = lPasta
    Else
        MsgBox "Não foi selecionada nenhuma pasta"
    End If
End Sub

Abraço

Marcos Rieper

//

Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel