Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#28913
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
;)
#28918
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.
#29076
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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord