@tutoelizeu
Você vai conseguir um desempenho muito melhor trabalhando com vetor/matriz.
Pode carregar os dados numa matriz, fazer um loop nela e preencher uma segunda matriz com os resultados. Por fim pega esses resultados e cola tudo de uma vez na aba.
Fazer um "loop normal" e preencher os dados linha por linha consome um tempo desnecessário.
Num teste que fiz esse seu script demorou em média 3,5 segundos, utilizando matrizes levou em média 0,3 segundos pra fazer a mesma coisa.
Sub Auditorias()
Linha = 2
linha2 = 1
Application.ScreenUpdating = False
Sheets("Auditorias").Select
Sheets("Auditorias").Range("A3:H50").Clear
LinFim = Plan1.Range("BK2").End(xlDown).Row + 1
Din_Gráfico = Plan1.Range("BK2:BQ" & LinFim)
ReDim Auditoria(1 To LinFim, 1 To 7)
For Item = 1 To UBound(Din_Gráfico)
If Din_Gráfico(Item, 4) = "OK" Then
Auditoria(linha2, 1) = Din_Gráfico(Item, 1) ' Facilitador
Auditoria(linha2, 2) = Din_Gráfico(Item, 2) ' Diretoria
Auditoria(linha2, 3) = Din_Gráfico(Item, 3) ' Area
Auditoria(linha2, 4) = Din_Gráfico(Item, 4) ' 1. Auditoria de Indicadores
Auditoria(linha2, 5) = Din_Gráfico(Item, 5) ' 2. Auditoria de Indicadores
Auditoria(linha2, 6) = Din_Gráfico(Item, 6) ' 3. Auditoria de Indicadores
Auditoria(linha2, 7) = Din_Gráfico(Item, 7) ' 4. Auditoria de Indicadores
linha2 = linha2 + 1
End If
Next
Sheets("Auditorias").Range("A3:G" & LinFim) = Auditoria
Application.ScreenUpdating = True
End Sub
Postado : 26/07/2021 9:09 pm