Ir ao conteúdo
  • Cadastre-se

Dividir Caminho absoluto de nome do arquivo


Ir à solução Resolvido por Visitante,

Posts recomendados

Boa tarde. Possuo um código que me retorna o caminho absoluto + nome do arquivo, segue código:

 

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", "*.xlsm", 1         'Determina qual o drive inicial        .InitialFileName = "C:\"                'Texto da barra        .Title = "Selecionar arquivo"    End With     'Retorna o arquivo selecionado    If fDlg.Show = -1 Then        lArquivo = fDlg.SelectedItems(1)end sub

Neste caso, o lArquivo quando seleciono um arquivo por exemplo, me retorna isso: 

 

F:\ARQUIVOS LOJA\RELATORIOS LOJAS\MURIAÉ\2015\ABRIL\Relatorio Diario Muriaé - 01-04-2015.xlsm

 

Eu preciso de uma forma de separar o caminho do nome do arquivo

F:\ARQUIVOS LOJA\RELATORIOS LOJAS\MURIAÉ\2015\ABRIL\
Relatorio Diario Muriaé - 01-04-2015.xlsm 

 

para trabalhar com eles separados, teria alguma forma disso acontecer? Lembrando, o nome do caminho e do arquivo podem variar.

Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

  • Solução

Experimente:

 

acrescente as linhas em azul

   

Dim lArquivo As String
Dim k As Long, ARQ As String, CAM As String

 

 

  For k = Len(lArquivo) To 1 Step -1
   If Mid(lArquivo, k, 1) = "\" Then
    CAM = Left(lArquivo, k)
    ARQ = Right(lArquivo, Len(lArquivo) - k)
    Exit For
   End If
  Next k

End Sub
 

 

a variável ARQ retornará o nome do arquivo e CAM retornará o caminho

 

obs. no seu código falta um comando, a linha em vermelho abaixo

If fDlg.Show = -1 Then
   lArquivo = fDlg.SelectedItems(1)

End If

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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