Usuário com melhor resposta
Consolidar Planilhas (Células Visíveis)

Pergunta
-
Bom dia!
Possuo o seguinte script em VBA:
Sub ConsolidarRetornos()
Dim ulinha, i As VariantApplication.DisplayAlerts = False
Dirname = ActiveWorkbook.Path
EsteArq = ActiveWorkbook.Name
Sheets("Lista_Arquivos").SelectCells(4, 3).Select
ulinha = Selection.End(xlDown).Row
Workbooks("Consolidar").Sheets(3).Range("C4:V1048576").Clear
For i = 4 To ulinha
Windows("Consolidar").Activate
Sheets("Lista_Arquivos").Select
nomearq = Cells(i, 3).Value
Workbooks.Open Filename:=Dirname & "\" & nomearq
Windows(nomearq).Activate
plans = Workbooks(nomearq).Worksheets.CountWindows("Consolidar").Activate
Sheets(3).Select
Range("C2").Select
Linha = Selection.End(xlDown).Row + 1Workbooks("Consolidar").Activate
For n = 3 To plans
lin = 4
Do Until Workbooks(nomearq).Sheets(n).Cells(lin, 3) = ""
Workbooks("Consolidar").Sheets(3).Cells(Linha, 3) = Workbooks(nomearq).Sheets(n).Cells(lin, 3)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 4) = Workbooks(nomearq).Sheets(n).Cells(lin, 4)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 5) = Workbooks(nomearq).Sheets(n).Cells(lin, 5)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 6) = Workbooks(nomearq).Sheets(n).Cells(lin, 6)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 7) = Workbooks(nomearq).Sheets(n).Cells(lin, 7)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 8) = Workbooks(nomearq).Sheets(n).Cells(lin, 8)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 9) = Workbooks(nomearq).Sheets(n).Cells(lin, 9)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 10) = Workbooks(nomearq).Sheets(n).Cells(lin, 10)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 11) = Workbooks(nomearq).Sheets(n).Cells(lin, 11)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 12) = Workbooks(nomearq).Sheets(n).Cells(lin, 12)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 13) = Workbooks(nomearq).Sheets(n).Cells(lin, 13)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 14) = Workbooks(nomearq).Sheets(n).Cells(lin, 14)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 15) = Workbooks(nomearq).Sheets(n).Cells(lin, 15)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 16) = Workbooks(nomearq).Sheets(n).Cells(lin, 16)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 17) = Workbooks(nomearq).Sheets(n).Cells(lin, 17)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 18) = Workbooks(nomearq).Sheets(n).Cells(lin, 18)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 19) = Workbooks(nomearq).Sheets(n).Cells(lin, 19)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 20) = Workbooks(nomearq).Sheets(n).Cells(lin, 20)
Workbooks("Consolidar").Sheets(3).Cells(Linha, 22).Font.ColorIndex = n + 1
Workbooks("Consolidar").Sheets(3).Cells(Linha, 22) = Workbooks(nomearq).Sheets(n).Name
lin = lin + 1
Linha = Linha + 1
Loop
NextWorkbooks(nomearq).Close SAVECHANGES:=True
Application.DisplayAlerts = True
Next iEnd Sub
Basicamente, este código realiza a consolidação de todas as Sheets de um Workbook em apenas uma Sheet.
O problema é que dentro das Sheets que serão consolidadas esta aplicado o AutoFiltro (AutoFilter) e quero apenas as informações visíveis.
Por favor, alguém poderia me dar uma ajuda?
Valew pessoal!
- Editado Fábio Benetton quarta-feira, 28 de agosto de 2013 14:24
Respostas
-
acrescente, dentro do Do Until, um comando If para testar se a linha está oculta.
exemplo:Do Until Workbooks(nomearq).Sheets(n).Cells(lin, 3) = ""
If Not Cells(lin, 3).EntireRow.Hidden then
'Seus comandos
End If
lin = lin + 1
Linha = Linha + 1
Loop[]s JLM Santo André - SP
- Marcado como Resposta fernando silva 1Moderator sexta-feira, 30 de agosto de 2013 14:36
Todas as Respostas
-
acrescente, dentro do Do Until, um comando If para testar se a linha está oculta.
exemplo:Do Until Workbooks(nomearq).Sheets(n).Cells(lin, 3) = ""
If Not Cells(lin, 3).EntireRow.Hidden then
'Seus comandos
End If
lin = lin + 1
Linha = Linha + 1
Loop[]s JLM Santo André - SP
- Marcado como Resposta fernando silva 1Moderator sexta-feira, 30 de agosto de 2013 14:36
-