Notifications
Clear all

Estrutura de repetição For Next (Estouro)

4 Posts
2 Usuários
0 Reactions
942 Visualizações
leandroxtr
(@leandroxtr)
Posts: 447
Reputable 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!

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

 
Postado : 20/04/2017 1:45 pm
Fernando Fernandes
(@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

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

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

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

Se te ajudou, não se esqueça de dar um like na resposta e marcar o tópico como finalizado.

Abraços!
Leandro Cordeiro

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

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

;)

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/04/2017 2:44 pm