Caros,
Utilizo a macro abaixo para transferir os dados de Plan1 para Plan3 atendendo certo requisito.
Sub GerarRelatorio1()
Plan3.Range("B13:N52").ClearContents
lin = 13
For i = 16 To 67
If Plan1.Cells(i, 6) = 1 Then
Plan3.Cells(lin, 2) = Plan1.Cells(i, 2)
Plan3.Cells(lin, 3) = Plan1.Range("C4:C4")
Plan3.Cells(lin, 4) = Plan1.Cells(i, 3)
lin = lin + 1
End If
Next
Plan3.Range("B56:S60").ClearContents
lin = 56
For i = 103 To 107
If Plan1.Cells(i, 6) = 1 Then
Plan3.Cells(lin, 2) = Plan1.Cells(i, 2)
lin = lin + 1
End If
Next
Plan3.Range("B65:Q92").ClearContents
lin = 65
For i = 73 To 100
If Plan1.Cells(i, 6) = 1 Then
Plan3.Cells(lin, 2) = Plan1.Cells(i, 2)
Plan3.Cells(lin, 3) = Plan1.Range("C4:C4")
Plan3.Cells(lin, 4) = Plan1.Cells(i, 3)
Plan3.Cells(lin, 5) = Plan1.Cells(i, 7)
Plan3.Cells(lin, 6) = Plan1.Cells(i, 8)
Plan3.Cells(lin, 7) = Plan1.Cells(i, 9)
Plan3.Cells(lin, 8) = Plan1.Cells(i, 10)
Plan3.Cells(lin, 9) = Plan1.Cells(i, 11)
Plan3.Cells(lin, 10) = Plan1.Cells(i, 12)
Plan3.Cells(lin, 11) = Plan1.Cells(i, 13)
Plan3.Cells(lin, 12) = Plan1.Cells(i, 14)
Plan3.Cells(lin, 13) = Plan1.Cells(i, 15)
Plan3.Cells(lin, 14) = Plan1.Cells(i, 16)
Plan3.Cells(lin, 15) = Plan1.Cells(i, 17)
Plan3.Cells(lin, 16) = Plan1.Cells(i, 18)
Plan3.Cells(lin, 17) = Plan1.Cells(i, 19)
lin = lin + 1
End If
Next
Call OcultarLinhas1
Call OcultarLinhas2
Call OcultarLinhas3
End Sub
Esta macro está funcionando a contento. Exceto a parte final em que faz o chamado de três outras macros chamadas: OcultarLinhas1, OcultarLinhas2, OcultarLinhas3 abaixo transcritas, que deveriam ocultar as linhas não preenchidas na Plan3, nos três intervalos 13:52, 56:60 e 65:92, respectivamente.
Ocorre que a do jeito que está, somente as linhas não preenchidas no intervalo 65:92 estão sendo ocultadas, se não preenchidas (OcultarLinhas3), a macro não está fazendo a chamada das outras duas macros que fazem a ocultação: OcultarLinhas1 e OcultarLinhas2.
Poderiam indicar uma solução para fazer com que a Sub GerarRelatorio1 chame ou execute as Subs OcultarLinhas1, OcultarLinhas2, OcultarLinhas3.
Att,
Heleones
Sub OcultarLinhas1()
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("Formulário")
.Cells.EntireRow.Hidden = False
For i = 13 To 52
Select Case .Range("b" & i).Value
Case 0
.Rows(i & ":" & i).EntireRow.Hidden = True
End Select
Next i
End With
Application.ScreenUpdating = True
End Sub
Sub OcultarLinhas2()
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("Formulário")
.Cells.EntireRow.Hidden = False
For i = 56 To 60
Select Case .Range("b" & i).Value
Case 0
.Rows(i & ":" & i).EntireRow.Hidden = True
End Select
Next i
End With
Application.ScreenUpdating = True
End Sub
Sub OcultarLinhas3()
Dim i As Integer
Application.ScreenUpdating = False
With Sheets("Formulário")
.Cells.EntireRow.Hidden = False
For i = 65 To 92
Select Case .Range("b" & i).Value
Case 0
.Rows(i & ":" & i).EntireRow.Hidden = True
End Select
Next i
End With
Application.ScreenUpdating = True
End Sub
Postado : 03/01/2018 8:41 am