Pergunte aqui
0

Macro para importar (txt) para planilha ativa

perguntadas 2019-06-06 17:32:48 +0200

imagem do gravatar de Leandro Vieira

updated 2020-01-21 15:29:20 +0200

imagem do gravatar de Schiavinatto

Olá, pessoal! Alguém conhece uma macro para importar arquivo .txt para planilha ativa? só preciso dos dados do arquivo sem renomear a planilha, pois elas já estão com nome do mês, o mesmo layout e acessadas por botão de macro, não posso utilizar a função de inserir um nova planilha, ficaria inviável ter que copiar botões de macros para cada nova que importar, ainda em construção, segue exemplo:

Os arquivos estão na pasta /home/leandro/Documentos/Back/Leandro/2019/

Havia encontrado algo parecido em VBA, mas não consigo adaptar:

Sub Importartxt()
'endereço no pc onde está o artquivo para importar
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\Administrador\Desktop\importar.txt", Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:= _
False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
'linha e coluna onde vai copiar
Range("A1:A14").Select
Selection.Copy
'nome da pasta atual onde deseja colocar
Windows("Pasta1").Activate
'célula onde vai começar a colar
Range("A10").Select
ActiveSheet.Paste
Range("A10").Select
'irá fechar o arquivo que abriu para copiar
Windows("importar.txt").Close
End Sub

Fonte:

Obs: Sistema Linux Ubuntu 18.04 lts

editar alterar tag assinalar como ofensivo fechar mesclar Excluir

Comentários

Já tinha visto as respostas, porém o que preciso é um pouco diferente, editei a pergunta.

imagem do gravatar de Leandro VieiraLeandro Vieira ( 2019-06-07 17:11:38 +0200 )editar

2 Respostas

0

respondidas 2020-01-21 15:00:24 +0200

imagem do gravatar de Leandro Vieira

Agradeço as contribuições!

Depois de de algumas buscas encontrei no fórum openoffice.org a macro que precisava:

Sub Abrir12()
        ctrl = ThisComponent.CurrentController
       marco = ctrl.Frame  
       desti = ctrl.ActiveSheet.getCellRangeByName("A9")
             Dim mArg(1) As New com.sun.star.beans.PropertyValue
             sRuta = ConvertToURL("/home/leandro/Documentos/Back/Leandro/2019/12-19.txt") ' < ----- OJO txt
             mArg(0).Name = "FilterName"
             mArg(0).Value = "Text - txt - csv (StarCalc)"
             mArg(1).Name = "FilterOptions"
             mArg(1).Value = "59/9"
        oDoc = StarDesktop.loadComponentFromURL(sRuta, "_blank", 0, mArg())    
    document = oDoc.CurrentController.Frame  
       bctrl = document.Controller.ActiveSheet
        orig = bctrl.getCellRangeByName ("A9")   
      cursor = bctrl.createCursorByRange(orig)
       cursor.collapseToCurrentRegion   
      origen = bctrl.getCellRangeByName(cursor.absoluteName)   
             document.Controller.select(origen)  
             dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
             dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
             document.Close(True)
    ctrl.Select(desti)
    dispatcher.executeDispatch(marco, ".uno:Paste", "", 0, Array())
End Sub

Só precisei modificar o caminho e a célula que será inserido as informações

editar assinalar como ofensivo Excluir Link mais
0

respondidas 2019-06-12 12:08:26 +0200

imagem do gravatar de Marcelo Caldas

updated 2019-06-12 12:09:56 +0200

Eu tenho essa aqui:

   Sub ReadTXT
         Dim sFileName, Number As String
         i2 = 2
    Sheets("Origem").Select
    Caminho = Range("B" & 13)
    oDoc = ThisComponent
    oPlan = oDoc.Sheets.getByName("CONJ1")
    sFileName = Range("B" & 13)
    Range("A" & i2).Select 
    Sheets("CONJ1").Select
    Number = Freefile
    Open sFileName For Input As Number
    While Not EOF(Number)
    Line Input #Number, sLine
       If sLine <>"" Then
          oPlan = oDoc.Sheets.getByName("CONJ1")
          oCelula = oPlan.getCellRangeByName("Z" & i2)
          oCelula.FormulaLocal = sLine
          i2=i2+1
       End If
    Wend
    Range("Z1") = i2-1
 End Sub

Não sou especialista, mas essa macro usa partes de codigo VBA e partes em Basic. Recentemente estou convertendo tudo pra Basic. Mas ainda não cheguei nessa.

SFileName tem que estar como formato URL.

editar assinalar como ofensivo Excluir Link mais
Login/Registrar para responder

Ferramentas de perguntas

1 seguidor

Estatísticas

Perguntadas: 2019-06-06 17:32:48 +0200

Lidas: 376 vezes

Última atualização: Jan 21