Sub balanceP2() Dim Nwin As New FileSystemObject Dim arquivosaida As String Dim arquivoentrada As String Dim arquivouso As String arquivosaida = ThisDocument.Path & "\P2TBL_ART066_SAIDA_DEC.csv" arquivoentrada = ThisDocument.Path & "\P2TBL_ART066_ENTR_DEC.csv" arquivouso = ThisDocument.Path & "\P2Uso.txt" Open arquivouso For Output As #3 Set objTextStream1 = Nwin.OpenTextFile(arquivosaida, ForReading) Set objTextStream2 = Nwin.OpenTextFile(arquivoentrada, ForReading) infS = objTextStream1.ReadLine infE = objTextStream2.ReadLine infarrayS = Split(infS, ",") infarrayE = Split(infE, ",") matS = infarrayS(2) matE = infarrayE(2) infS = objTextStream1.ReadLine infarrayS = Split(infS, ",") matS = infarrayS(2) dts = corrigeData(CStr(infarrayS(1))) chaves = infarrayS(0) infE = objTextStream2.ReadLine infarrayE = Split(infE, ",") matE = infarrayE(2) dtE = corrigeData(CStr(infarrayE(1))) chavee = infarrayE(0) Do While Not objTextStream1.AtEndOfStream 'If matS = matE Then TA = dtE tb = DateAdd("yyyy", -5, dts) If (dts >= dtE) And (dtE >= DateAdd("yyyy", -5, dts)) Then Print #3, chaves; ";"; chavee infS = objTextStream1.ReadLine infarrayS = Split(infS, ",") matS = infarrayS(2) dts = corrigeData(CStr(infarrayS(1))) chaves = infarrayS(0) If objTextStream2.AtEndOfStream Then Exit Do infE = objTextStream2.ReadLine infarrayE = Split(infE, ",") matE = infarrayE(2) dtE = corrigeData(CStr(infarrayE(1))) chavee = infarrayE(0) Else If objTextStream2.AtEndOfStream Then Exit Do infE = objTextStream2.ReadLine infarrayE = Split(infE, ",") matE = infarrayE(2) dtE = corrigeData(CStr(infarrayE(1))) chavee = infarrayE(0) End If ' Else ' ' ' If matS < matE Then ' ' ' infS = objTextStream1.ReadLine ' infarrayS = Split(infS, ",") ' matS = infarrayS(2) ' dts = corrigeData(CStr(infarrayS(1))) ' chaves = infarrayS(0) ' ' Else ' If objTextStream2.AtEndOfStream Then Exit Do ' infE = objTextStream2.ReadLine ' infarrayE = Split(infE, ",") ' matE = infarrayE(2) ' dtE = corrigeData(CStr(infarrayE(1))) ' chavee = infarrayE(0) ' End If ' ' End If contar = contar + 1 If contar > 1000000 Then DoEvents contar = 1 DoEvents End If Loop Close #3 End Sub Function corrigeData(dt As String) As Date Dim base As String base = Replace(dt, "JAN", "01") base = Replace(base, "FEB", "02") base = Replace(base, "MAR", "03") base = Replace(base, "APR", "04") base = Replace(base, "MAY", "05") base = Replace(base, "JUN", "06") base = Replace(base, "JUL", "07") base = Replace(base, "AUG", "08") base = Replace(base, "SEP", "09") base = Replace(base, "OCT", "10") base = Replace(base, "NOV", "11") base = Replace(base, "DEC", "12") ano = (Mid(base, 5, 4)) mes = (Mid(base, 3, 2)) dia = (Mid(base, 1, 2)) corrigeData = CDate(mes & "-" & dia & "-" & ano) End Function