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