none
Importação de arquivo .txt automaticamente. RRS feed

  • Pergunta

  • Como buscar um arquivo .txt para importação no Excel automaticamente, dentro de uma pasta no C:, sem precisar abrir o código VBA para alterar o endereço do arquivo?

    Observação: O nome da pasta e do arquivo .txt mudam mensalmente.

    Segue o código:

        

    Sub Importar_Relatório()
    '
    ' Importar_Relatório Macro
    '
    ' Atalho do teclado: Ctrl+Shift+R
    '
        Range("A2").Select
        Rows("2:2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.ClearContents
        Range("A3").Select


        Range("A2").Select
        Application.CutCopyMode = False
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;C:\Conciliação da Retenções Federais\10-2019\Relatório - 10-2019.txt" _
            , Destination:=Range("$A$2"))
            .Name = "Relatório.txt"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = ";"
            .TextFileColumnDataTypes = Array(1, 2, 2, 4, 4, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
        Rows("2:2").Select
        Selection.RowHeight = 35
        Columns("A:A").ColumnWidth = 14
        Range("A3").Select

    End Sub


    segunda-feira, 2 de dezembro de 2019 13:39

Todas as Respostas

  • Luciano Polchera,

       Você pode colocar esse caminho do arquivo e nome do arquivo em uma célula do Excel e alterar o valor apartir da célula. Quando o programa quiser saber o caminho e nome do arquivo, irá ler essa célula.

       Como o nome do arquivo muda, fica impossível para o programa procurar o arquivo no HD automaticamente.

    []'s,
    Fabio I.
    segunda-feira, 2 de dezembro de 2019 14:43
  • Fábio, boa tarde!

    Obrigado pela atenção, mas estou dando os primeiros passos em VBA...

    Poderia mostrar como buscar o caminho direto da célula.

    []"s

    segunda-feira, 2 de dezembro de 2019 16:49
  • Luciano Polchera,

       Tem vários jeitos... estou trabalhando com isso agora:

    Private Sub CommandButton1_Click()
    
    Set r = Range("C1:D5")
    
    For n = 1 To r.Rows.Count
    
        If r.Cells(n, 1).Value < 0 Then
            Cells(1, 5).Value = r.Cells(n, 2).Value
            Exit For
        End If
    
    Next
    
    End Sub


      Mas, por favor veja os tutorias abaixo:

    ==========================================
    Pegar valores no vba dentro do excel
    Primeiros Passos

    var1 = range("B1").value'............... (armazena o valor da primeira célula, A1)
    var2 = range("B2").value'...............(armazena o valor da segunda célula, A2)
    varSoma = var1 + var2'............... (codigo que armazena a soma dos valores das celulas)
    Cells(4, 2).Value = varSoma'....... (codigo que informa o valor  da soma na celula "B4")

    http://excelevba.com.br/pegar-valores/
    ==========================================
    VBA & Excel: ler em uma planilha fechada 

    https://br.ccm.net/faq/10142-vba-excel-ler-em-uma-planilha-fechada
    ==========================================
    Como selecionar células/intervalos usando os procedimentos do Visual Basic no Excel

    https://docs.microsoft.com/pt-br/office/troubleshoot/office-developer/select-cells-rangs-with-visual-basic
    ==========================================

       E se gostou, não se esqueça de me pontuar.

    []'s,
    Fabio I.
    segunda-feira, 2 de dezembro de 2019 17:06
  • Boa tarde.

    Além da solução proposta pelo Fábio, você pode importar arquivos TXT utilizando o PowerQuery no Excel em Dados/New Query/From File/From Folder

    Ao sinalizar a pasta, e seguir os passos posteriores, todo arquivo que você incluir nela, será carregado no seu excel ao atualizar os dados.

    Att.

    segunda-feira, 2 de dezembro de 2019 20:53