Página 1 de 1
Importar txt - trazendo o nome do arquivo origem
Enviado: 21 Dez 2015 às 12:45
por daniexcel
Boa tarde
Tenho um arquivo, onde eu importo um txt através de uma caixa de dialogo. No entanto, gostaria que o nome do arquivo pudesse ser inserido em uma célula específica.
Tenho duas planilhas dentro do meu arquivo . Uma chamada "MAIN" e a outra chamada "IMPORT"
o botão da macro fica na célula MAIN e os dados importados são colados automaticamente na planilha IMPORT.
Gostaria que após a inserção dos dados na planilha IMPORT, em alguma celula da MAIN, eu pudesse trazer o nome do arquivo que foi importado.
Alguem por favor, poderia me ajudar?
Importar txt - trazendo o nome do arquivo origem
Enviado: 21 Dez 2015 às 13:17
por Parkeless
Boa tarde!
Talvez postando o código que você usou para importar, eu consiga te ajudar... mas, dependendo, só postando a planilha mesmo (pode ser uma de exemplo, mas com o mesmo layout e macros).
Você consegue disponibilizar?
Importar txt - trazendo o nome do arquivo origem
Enviado: 21 Dez 2015 às 13:58
por daniexcel
Boa tarde Robson.
Segue codigo
Código: Selecionar todos Sub ImportDados()
Dim DestBook As Workbook, SourceBook As Workbook
Dim DestCell As Range
Dim RetVal As Boolean
' Limpar dados da aba History
Sheets("Import").Visible = True
Sheets("Import").Select
Range("A1").Select
Cells.Select
Selection.Delete Shift:=xlUp
' Apaga Dados.
Application.ScreenUpdating = False
' Define variaveis.
Set DestBook = ActiveWorkbook
Set DestCell = ActiveCell
' abre caixa de dialogo.
RetVal = Application.Dialogs(xlDialogOpen).Show("*.txt")
' Se Retval for falso, cancelar caixa de dialogo
If RetVal = False Then Exit Sub
' variavel para texto
Set SourceBook = ActiveWorkbook
' copia os dados da planilha
Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy
' Ativar workbook destino e colar valores do arquivo.
' DestBook.Activate
' DestCell.PasteSpecial Paste:=xlValues
Range("A1").Select
DestBook.Activate
DestCell.PasteSpecial Paste:=xlAll
' Fechar arquivo de conexao
SourceBook.Close False
Selection.End(xlUp).Select
' RETORNAR PARA MAIN
Sheets("Main").Select
Range("A1").Select
'Mensagem de Texto para próxima ETAPA
MsgBox "Dados importados com sucesso", 64
End Sub
o que eu gostaria é que o FileName viesse em alguma célula da planilha MAIN. se possível, que viesse o path tambem.
Voce poderia me auxiliar?
=)
Importar txt - trazendo o nome do arquivo origem
Enviado: 21 Dez 2015 às 14:39
por Parkeless
Tenta isso:
Código: Selecionar todosSub ImportDados()
Dim DestBook As Workbook, SourceBook As Workbook
Dim DestCell As Range
Dim RetVal As Boolean
' Limpar dados da aba History
Sheets("Import").Visible = True
Sheets("Import").Select
Range("A1").Select
Cells.Select
Selection.Delete Shift:=xlUp
' Apaga Dados.
Application.ScreenUpdating = False
' Define variaveis.
Set DestBook = ActiveWorkbook
Set DestCell = ActiveCell
' abre caixa de dialogo.
RetVal = Application.Dialogs(xlDialogOpen).Show("*.txt")
' Se Retval for falso, cancelar caixa de dialogo
If RetVal = False Then Exit Sub
' variavel para texto
Set SourceBook = ActiveWorkbook
'Modificação Parkeless nº 1 - obter nome do arquivo e endereço
Dim Endereço As String
Dim Nome_Arquivo As String
Nome_Arquivo = ActiveSheet.Name
Endereço = SourceBook.FullName
' copia os dados da planilha
Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy
' Ativar workbook destino e colar valores do arquivo.
' DestBook.Activate
' DestCell.PasteSpecial Paste:=xlValues
Range("A1").Select
DestBook.Activate
DestCell.PasteSpecial Paste:=xlAll
' Fechar arquivo de conexao
SourceBook.Close False
Selection.End(xlUp).Select
' RETORNAR PARA MAIN
Sheets("Main").Select
'Modificação Parkeless nº 2 - incluir nome e endereço na célula A1 e B1
Range("A1") = Nome_Arquivo
Range("B1") = Endereço
Range("A1").Select
'Mensagem de Texto para próxima ETAPA
MsgBox "Dados importados com sucesso", 64
End Sub
Se quiser alterar alguma coisa, minhas modificações tem os comentários, "Modificação Parkeles nº x".
Importar txt - trazendo o nome do arquivo origem
Enviado: 21 Dez 2015 às 18:32
por daniexcel
deu super certo =)
Agradeço imensamente pela ajuda