Ir ao conteúdo
  • Cadastre-se

Natan G Martins

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Tudo que Natan G Martins postou

  1. Bom dia a todos, estou com o seguinte problema: Tenho uma planilha que possui dados a partir da linha 8, fiz uma macro que gera um txt com os dados que estiverem a partir da linha 8 e ela funciona muito bem, porém o txt gerado fica com a ultima linha em branco. Eu gostaria que essa macro deixasse no txt apenas as linhas que possuirem valores. Segue macro Sub TXT_Contabil() Application.ScreenUpdating = False Dim DIR As String Dim UltLin Dim i Dim LinExp Dim Separador As String 'FORMULAS Range("A8").Select ActiveCell.FormulaR1C1 = "=REPT(""0"",14-LEN(IF(RC[3]="""","""",ROUND(RC[5]*100,0))))&IF(RC[3]="""","""",ROUND(RC[5]*100,0))" Range("B8").Select ActiveCell.FormulaR1C1 = _ "=IF(RC[2]="""","""",CONCATENATE(REPT(""0"",2-LEN(DAY(RC[3]))),DAY(RC[3]),REPT(""0"",2-LEN(MONTH(RC[3]))),MONTH(RC[3]),REPT(""0"",4-LEN(YEAR(RC[3]))),YEAR(RC[3])))" Range("C8").Select ActiveCell.FormulaR1C1 = "=REPT("" "",120-LEN(RC[8]))" Range("A8:c8").Select Selection.Copy Range("d7").Select Selection.End(xlDown).Select ActiveCell.Offset(0, -1).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlUp)).Select ActiveSheet.Paste Range("a7").Select ActiveCell.FormulaR1C1 = "VALOR" Range("b7").Select ActiveCell.FormulaR1C1 = "DATA" Range("c7").Select ActiveCell.FormulaR1C1 = "ESP. HIST." Range("A7:c7").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorDark1 .TintAndShade = -0.349986266670736 .PatternTintAndShade = 0 Selection.Font.Bold = True End With 'Ordenar Filial e data Range("K8").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select Range(Selection, Selection.End(xlToLeft)).Select ' Range(Selection, Selection.End(xlToLeft)).Select ActiveWorkbook.Worksheets("Contabil").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Contabil").Sort.SortFields.Add Key:=Range("D8:D1048576" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal ActiveWorkbook.Worksheets("Contabil").Sort.SortFields.Add Key:=Range("E8:E1048576" _ ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Contabil").Sort .SetRange Range("A8:k1048576") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'COMEÇO GERAR TXT 'Determina o tamanho da planilha (considerando que a coluna "A" esta preenchida. UltLin = Cells(Cells.Rows.Count, "A").End(xlUp).Row 'Diretorios para salvar a planilha DIR = Range("L2") & Range("N4") & Range("M2") & Range("N2") Separador = Range("O2") 'Abre o arquivo Saida na "Area de Trabalho" do usuario "Local" 'Open "C:\txt\001.txt" For Output As #1 Open DIR For Output As #1 'Workbooks.OpenText Filename:=( For Output As #1 'Executa um loop da linha 8 até a ultima linha de dados For i = 8 To UltLin ' Monta a linha LinExp = Left(Cells(i, 30), 1) 'Matriz LinExp = LinExp & " " 'Espaços iniciais LinExp = LinExp & "" & Left(Cells(i, 4), 7) & "008" 'E5_FILIAL LinExp = LinExp & Separador & Left(Cells(i, 2), 8) 'E5_DATA LinExp = LinExp & Separador & Left(Cells(i, 1), 16) 'E5_VALOR If Left(Cells(i, 7), 10) = "" Then LinExp = LinExp & Separador & " " 'E5_CONTADEBITO vazia Else LinExp = LinExp & Separador & Left(Cells(i, 7), 10) 'E5_CONTADEBITO End If If Left(Cells(i, 8), 10) = "" Then LinExp = LinExp & Separador & " " 'E5_CONTACREDITO vazia Else LinExp = LinExp & Separador & Left(Cells(i, 8), 10) 'E5_CONTACREDITO End If If Left(Cells(i, 9), 9) = "" Then LinExp = LinExp & Separador & " " 'E5_CCD vazio Else LinExp = LinExp & Separador & Left(Cells(i, 9), 9) 'E5_CCD End If If Left(Cells(i, 10), 9) = "" Then LinExp = LinExp & Separador & " " 'E5_CCC vazio Else LinExp = LinExp & Separador & Left(Cells(i, 10), 9) 'E5_CCC End If LinExp = LinExp & Separador & Left(Cells(i, 11), 120) & Left(Cells(i, 3), 120) 'E5_HISTOR" ' Grava a linha no arquivo Print #1, LinExp Next i 'Fecha o arquivo Close #1 MsgBox ("Arquivo salvo com sucesso na pasta: " & DIR) Application.ScreenUpdating = True End Sub AMORT_Distrib Resultado.txt

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...