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

Agrupamento Automático de Dados com VBA
Agrupamento Automático de Dados com VBA
12 de março de 2011
Procv usando VBA
Procv usando VBA
20 de março de 2011

Ob jetivo: 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.


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

7 Comentários

  1. Anderson Dorneles disse:

    Olá,

    Este código me será ultil, muito util. Preciso atualizar links de um arquivo, porem, esse arquivo mudará de nome a todo mes, e por isso nao poderei usar este código, pois o endereço é fixo.

    ChDir “C:\MEMORIA_CALCULO\LOTE_03_OUTUBRO”

    ActiveWorkbook.UpdateLink Name:=”C:\MEMORIA_CALCULO\LOTE_03_OUTUBRO\LOTE 03S CT.066-10 MED 05 OUT-2011.xlsm”, Type:=xlExcelLinks

    MsgBox “Links Atualizados com Sucesso !!”

    Pensei em usar uma janela pra procurar o arquivo, e não abrilo, ou salvá-lo, simplesmente pra pegar o endereço dele, e o novo nome.

    Pode me ajudar com isso?

    Abraço

    Anderson Dorneles

  2. Muitíssimo obrigado pelo código!

  3. Alvaro Borja disse:

    Era exatamente isto que eu estava procurando, agora vou estudar cada linha para entender cada comando. Muito obrigado!

  4. fabio disse:

    e se eu quiser criar um novo arquivo xls a partir de um questionamento ,função if isso tudo no mesmo diretório .
    ou seja mandei o vba pesquisar um nome de arquivo e ele não encontrou quero que ele crie um novo para mim no mesmo diretório como fazer ??????????????
    com o código workbooks.add ele até cria mas não onde eu gostaria que fosse criado.
    a função pesquisa num diretorio e quando encontra ela abre e copia algumas informações, mas quando não encontra ela apenas aparece uma mensagem, e eu gostaria que fosse criado um novo arquivo, e daí como posso fazer ?????????????????

  5. Vanessa disse:

    Boa tarde, se ao invés de abrir a janela pra selecionar a pasta, eu entrar com o nome em um formulário, tipo o nome da pasta sendo uma data, como faço pra pegar a pasta solicitada no formulário?

    Muito obrigada!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.