Pessoal Boa Tarde!
Estou com um problema em uma rotina que já estou até desistindo de tanto que estou quebrando a cabeça para resolver.
Se eu rodo o código abaixo através da tecla F8, ela roda perfeitamente até o final, porem se eu aperto o botão da rotina para rodar, chega em um determinado momento que o Excel simplesmente trava com o erro O Excel parou de funcionar.
Alguem sabe me dizer que porcaria pode estar ocorrendo??????
Sub ATUALIZAR()
'Application.ScreenUpdating = False
TEMPO_INI = Time
x_ABA = ActiveWorkbook.Name
x_CAMINHO = Sheets("PARAMETROS").Range("$H$3").Value
ULINHA = Sheets("FORECAST").Range("C1048576").End(xlUp).Row
x_RANGE = "C6:C" & ULINHA
Range(x_RANGE).Select
Range(x_RANGE).Copy
Sheets("DADOS").Select
Cells(2, 1).Select
ActiveSheet.Paste
Sheets("FORECAST").Select
y_RANGE = "BS6:BS" & ULINHA
Range(y_RANGE).Select
Range(y_RANGE).Copy
Sheets("DADOS").Select
Cells(2, 2).Select
ActiveSheet.Paste
Range("A1:B1").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Range("$A$1:$B$1048576").RemoveDuplicates Columns:=1, Header:=xlYes
Sheets("FORECAST").Select
ULINHA3 = Range("B1048576").End(xlUp).Row
x_ROWS4 = "B6:C" & ULINHA3
Range(x_ROWS4).Select
Range(x_ROWS4).ClearContents
x_ROWS4 = "AC6:AN" & ULINHA3
Range(x_ROWS4).Select
Range(x_ROWS4).ClearContents
Sheets("DADOS").Select
ULINHA5 = Sheets("DADOS").Range("A1048576").End(xlUp).Row
n_IMP = 2
Arquivo = "FORECAST - "
ABRIR = False
For n_IMP = 2 To ULINHA5
x_ARQUIVO = Sheets("DADOS").Cells(n_IMP, 1).Value & ".xlsx"
ARQUIVO_FINAL = Arquivo & x_ARQUIVO
n_IMP = n_IMP + 1
x_ARQUIVO_2 = Sheets("FORECAST").Cells(n_IMP, 3).Value & ".xlsx"
n_IMP = n_IMP - 1
If x_ARQUIVO <> x_ARQUIVO_2 Then
ABRIR = True
Application.DisplayAlerts = False
On Error Resume Next
Workbooks.Open Filename:=(x_CAMINHO & "" & ARQUIVO_FINAL)
If Not Err.Number = 0 Then
n_RESP = MsgBox("ATENÇÃO!!!" + vbCrLf + "VERIFIQUE OS PARÂMETROS:" + vbCrLf + "DIRETÓRIO, OU ARQUIVOS NÃO LOCALIZADOS." + vbCrLf + vbCrLf + "ESSA ROTINA SERÁ ENCERRADA", vbCritical, "BUSINESS PARTNER FINANÇAS")
Exit Sub
Application.DisplayAlerts = False
End If
End If
n_COL = 6
If ABRIR = True Then
ULINHA2 = Range("B1048576").End(xlUp).Row
x_NOME = ActiveWorkbook.Name
CONTAS = Cells(n_COL, 2).Value
x_ROWS3 = "AC6:AN" & ULINHA2
Windows(x_NOME).Activate
Range(x_ROWS3).Select
Selection.Copy
Windows(x_ABA).Activate
Sheets("FORECAST").Select
LIN = Range("AC1048576").End(xlUp).Row
ULIN = LIN + 1
Cells(ULIN, 29).Select
ActiveSheet.Paste
' Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
' :=False, Transpose:=False
Windows(x_NOME).Activate
x_ROWS3 = "B6:C" & ULINHA2
Range(x_ROWS3).Select
Selection.Copy
Windows(x_ABA).Activate
Sheets("FORECAST").Select
LIN = Range("B1048576").End(xlUp).Row
ULIN = LIN + 1
Cells(ULIN, 2).Select
ActiveSheet.Paste
' Windows(x_NOME).Activate
' ActiveWindow.Close
Workbooks(x_NOME).Activate
Workbooks(x_NOME).Close
End If
Next
Range("B5").Select
TEMPO_FIM = Time
TEMPO_FINAL = TEMPO_FIM - TEMPO_INI
End Sub
Postado : 20/10/2017 12:18 pm