Notifications
Clear all

Estrutura de repetição For Next (Estouro)

4 Posts
2 Usuários
0 Reactions
923 Visualizações
(@leandroxtr)
Posts: 0
New Member
Topic starter
 

Boa tarde, pessoal.

Estou desenvolvendo uma planilha com a estrutura de repetição Fox Next que executa um procedimento de acordo com alguns critérios.

Pois bem, o critério de procura da estrutura puxa a quantidade de linhas que estão preenchidas na planilha, no entanto, quando passa de 50 mil linhas preenchidas, ocorre um "estouro" na macro, ainda que eu declare para variável Long.

Alguém sabe como contornar este problema? Segue o código:

Sub executa()

Dim w As Worksheet
Dim ws As Worksheet
Dim x As Integer
Dim CountLinha As Variant
Dim percentual As Single
Dim contador As Integer

Set w = Sheets("Matriz")
Set ws = Sheets("Banco_Dados")

w.Range("a1:j1").Copy
ws.Select
ws.Range("a1").Select
ActiveSheet.Paste

w.Select
w.Range("a2").Select
r = ActiveCell.Rows
CountLinha = w.Range(Selection, Selection.End(xlDown)).Count
Application.ScreenUpdating = False
For x = 1 To CountLinha
If ActiveCell.Offset(0, 4).Value <> 0 Or ActiveCell.Offset(0, 6).Value <> 0 Or _
ActiveCell.Offset(0, 9).Value <> 0 Then

w.Range(Selection, Selection.End(xlToRight)).Copy
ws.Select
ws.Range("A1048576").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
w.Select
w.Cells(x + 1, 1).Select

End If
ActiveCell.Offset(1, 0).Select
r = r + 1
contador = contador + 1
percentual = contador / CountLinha

AtualizaBarra percentual
Next

Obrigado!

 
Postado : 20/04/2017 1:45 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Declarando uma variavel como integer "limita" o valor dessa variavel no intervalo de -32.768 a 32.767, assim passando desse valor ocorre o estouro.
Altere essa declaração para Long, tera então intervalo de -2.147.483.648 a 2.147.483.647

 
Postado : 20/04/2017 1:58 pm
(@leandroxtr)
Posts: 0
New Member
Topic starter
 

Obrigado!
Alterei as demais aqui...
Alterei a variável de CountLinha e me esqueci completamente da dimensão "x".
Obrigado!

 
Postado : 20/04/2017 2:38 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Amigo, arruma esse código...
Identação !

;)

 
Postado : 20/04/2017 2:44 pm