Notifications
Clear all

Preciso editar uma macro como faço?

3 Posts
2 Usuários
0 Reactions
939 Visualizações
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Prezados,

Por favor, como faço para editar uma macro já criada, alguém poderia me ajudar?

macro:

'myPath = "C:UsersFiscal1DesktoptesteTESTE.txt"
myPath = ThisWorkbook.Path & "Teste.txt"

Essa macro importa o arquivo TESTE.txt, porém só se ele estiver no diretório informado.

Por favor, alguém sabe como faço para escolher o arquivo que será importado?

Exemplo: ao invés de importar só se o arquivo estiver na pasta indicada, eu vou poder qual o arquivo que eu quero.

tipo assim: mypath = thisworkbook.path "escolha qual o arquivo será importado"

Desde já agradeço pela atenção de todos!

Atenciosamente,
Marco

 
Postado : 24/04/2017 1:22 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde Marco,

Use o comando Application.GetOpenFilename. Por exemplo:

Sub Exemplo()
    
    Dim Caminho     As String
    
    Caminho = Application.GetOpenFilename
    Workbooks.Open (Caminho)
        
End Sub

att,

 
Postado : 24/04/2017 1:38 pm
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Bruno, bom dia!

Peço desculpas, mas eu não passei o código completo.

Essa macro importa o arquivo txt, porém somente se ele estiver no diretório indicado e com o nome especificado.

Porém eu preciso apenas que essa macro habilite a opção de escolha (escolher qual o arquivo será importado no excel, poder escolher onde estar o arquivo).

Macro completa:

Sub Macro1()
Dim F As Long, Linha As String, myLinha As String
Dim myPath As String
Dim myRecord
'Altere para o caminho de seu txt
'myPath = "C:UsersFiscal1DesktoptesteTESTE.txt"
myPath = ThisWorkbook.Path & "Teste.txt"
F = FreeFile
Open myPath For Input As F   'abre o arquivo texto
'inicia os dados na linha 2 da planilha
x = 2
Do While Not EOF(F)
Line Input #F, Linha 'lê uma linha do arquivo texto
'substitui os caractes < e > por # e separa
myRecord = Split(VBA.Replace(VBA.Replace(Linha, ">", "#"), "<", "#"), "#")
'Grava os dados separados na planilha
For y = 1 To UBound(myRecord)
    Sheets(1).Cells(x, y) = myRecord(y)
Next
    x = x + 1
Loop
Close #F
End Sub

muito obrigado pela atenção.

Atenciosamente,
Marco

 
Postado : 25/04/2017 5:25 am