Página 1 de 1

Livre para escolher o local onde se encontra o arquivo txt

Enviado: 18 Dez 2017 às 17:58
por MarcioMelin
Boa noite galera. Tudo bem?

Estou precisando de um pouquinho de ajuda.
Gravei uma macro, importando e tabulando um arquivo txt, tudo certo, mas preciso que seja possível selecionar o local e o arquivo que será importado. Um arquivo fixo em um caminho fixo, foi fácil. rs

Segue abaixo como fiz a macro e onde esta o arquivo, por favor, como consigo abrir um formulário, pedindo o local e o arquivo que deverá ser importado? Claro, seguindo a parte de tabulação.
Segue abaixo parte da macro

Sub Macro1()
'
' Macro1 Macro
'

'
Application.CutCopyMode = False
ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;Z:\CONTABILIDADE\#Projeto\2013\bonde.txt" , Destination:=Range("$A$1"))
' .CommandType = 0
.Name ="bonde" ;)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
;)

Livre para escolher o local onde se encontra o arquivo txt

Enviado: 18 Dez 2017 às 19:56
por MarcioMelin
Galera, a minha ignorancia é tamanha, que tenho até uma função que faz o que quero, mas dai, fazer funcionar com a minha macro de tabulação, ta dificil.
Segue abaixo o que tenho.
Function AbrirArquivo()

Dim Caminho As String 'Caminho do arquivo
Dim fDialog As Office.FileDialog

'Configura caixa de seleção do arquivo
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.AllowMultiSelect = False 'Habilita ou desabilita a seleção de múltiplos arquivos
.Title = "Selecionar arquivo..."
'.InitialFileName = 'Caminho inicial para seleção, não utilizado no exemplo

'Configura filtros da caixa de seleção
.Filters.Clear 'Limpa os filtros
.Filters.Add "Arquivos Excel - .txt", "*.txt" 'Adiciona filtro para arquivos .txt
.Filters.Add "Arquivos Excel - .xlsb", "*.xlsm" 'Adiciona filtro para arquivos .xlsn
.Filters.Add "Arquivos Excel - .xls", "*.xls" 'Adiciona filtro para arquivos .xls

If .Show = True Then 'Se o parâmetro .Show for igual à True significa
'que algum arquivo foi selecionado
Caminho = .SelectedItems.Item(1) 'Local + arquivo selecionados são passados para
'a variável chamada de "Caminho"
Else
MsgBox "Você clicou em cancelar"
End If

End With

AbrirArquivo = Caminho 'Atribui o caminho do arquivo ao retorno da função

End Function

Mas não estou conseguindo fazer funcionar.
Agradeço imensamente a ajuda.

Re: Livre para escolher o local onde se encontra o arquivo t

Enviado: 24 Dez 2017 às 14:20
por AndersonLeal
Olá,

Como seria esse arquivo com tabulação exatamente? Onde você quer inserir os dados do txt?

Atenciosamente,
Anderson Leal

Livre para escolher o local onde se encontra o arquivo txt

Enviado: 29 Dez 2017 às 08:07
por wesleyribeiro123
MarcioMelin
Bom dia,

É um pouco complexo lhe ajudar sem ter os arquivos...
Seria possível compartilhar com a gente uma cópia, mesmo que com informações fictícias!

Porém, o grande segredo de se trabalhar como deseja é conseguir dar o foco para que o VBA opere na janela que o você abriu!
Se você já possui uma função para selecionar o arquivo e abri-lo, basta agora que selecione todo seu conteudo e copie (transfira para área de transferência do windows), desta forma você pode voltar o foco ao Excel e colar tranquilamente.
Quanto a Tabulação, talvez seja mais interessante colar em uma coluna apenas para depois executá-la.