Senhores, sou um pouco nisso e não estou conseguindo resolver o debug do cod a seguir:
[ele não funciona no ultimo passo - o activesheet.paste!]
Sub AtualizaDash_QDC()
Dim lLin As Long
Dim n As Integer
Application.ScreenUpdating = False
'Altere o nome da planilha abaixo:
'Preciso automatizar a forma de escolha do mês
'Preciso incluir a colagem do relatório visão geral
'Atualizar as planilhas dinâmicas
'Alterar o dia para soma acumulada
With Sheets("Dados QDC")
For lLin = .Cells(.Rows.Count, "B").End(xlUp).Row To 2 Step -1
If .Cells(lLin, "B") = Range("b3") Then .Rows(lLin).Delete
'Desafoga os processos pendentes do Windows a cada 100 linhas iteradas:
If lLin Mod 100 = 0 Then DoEvents
Next lLin
End With
Application.ScreenUpdating = True
'Insere duas linhas e marca B3 de amarelo
Rows("3:3").Select
Selection.Insert Shift:=xlDown
Selection.Insert Shift:=xlDown
Range("B3").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("C3").Select
ActiveCell.FormulaR1C1 = "DIGITE O MÊS CORRENTE"
Range("C4").Select
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Workbooks.Open FileName:= _
"\usaRelatoriosM4UAssinaturasVisaoGeral_CLARO_TODOSOSSERVICOS.xls"
Workbooks.Open FileName:= _
"\usaRelatoriosM4UAssinaturasVisaoGeral_claro_TOS_DiaeMes.xlsm"
' a variável n recebe o número de planilhas no arquivo
n = Sheets.Count
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' Primeiramente vamos fazer todo o procedimento com a primeira planilha, pois nela há a necessidade de se
'''' agregar as primeiras células que contém o cabeçalho... Depois, se houver mais de uma planilha no relatório,
'''' vamos fazer um for para as outras.
Windows("VisaoGeral_CLARO_TODOSOSSERVICOS.xls").Activate
Worksheets(1).Activate
i = 4
While (Cells(i + 1, 2) <> "")
i = i + 1
Wend
Sheets(1).Copy Before:=Workbooks( _
"VisaoGeral_claro_TOS_DiaeMes.xlsm").Sheets(1)
Cells.Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Inserção das colunas dia e mês
Range("A2:K3").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlLTR
.MergeCells = True
End With
Selection.UnMerge
Columns("C:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A2:L3").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlLTR
.MergeCells = False
End With
Selection.Merge
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlTop
.WrapText = True
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlLTR
.MergeCells = True
End With
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Range("C4").Select
ActiveCell.FormulaR1C1 = "Mês"
Range("D4").Select
ActiveCell.FormulaR1C1 = "Dia"
Range("C5").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],7)"
Range("D5").Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[-2],2)"
Range("C5:D5").Select
Selection.AutoFill Destination:=Range("C5:D" & i)
Columns("B:L").Select
Columns("B:L").EntireColumn.AutoFit
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'um for para fazer o procedimento com as outras planilhas do relatório, caso existam outras planilhas
If (n > 1) Then
For k = 2 To n
Windows("VisaoGeral_CLARO_TODOSOSSERVICOS.xls").Activate
Worksheets(k).Activate
i = 1
While (Cells(i + 1, 2) <> "")
i = i + 1
Wend
Sheets(k).Copy Before:=Workbooks( _
"VisaoGeral_claro_TOS_DiaeMes.xlsm").Sheets(1)
Cells.Select
With Selection.Font
.ColorIndex = xlAutomatic
.TintAndShade = 0
End With
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Inserção das colunas dia e mês
Columns("C:D").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Range("C1").Select
ActiveCell.FormulaR1C1 = "=LEFT(RC[-1],7)"
Range("D1").Select
ActiveCell.FormulaR1C1 = "=RIGHT(RC[-2],2)"
Range("C1:D1").Select
Selection.AutoFill Destination:=Range("C1:D" & i)
Columns("B:L").Select
Columns("B:L").EntireColumn.AutoFit
Next k
End If
Windows("VisaoGeral_claro_TOS_DiaeMes.xlsm").Activate
Application.DisplayAlerts = False
'deleta a planilha com o nome de "relatório" no arquivo de geração
Sheets("relatório").Select
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
'Dim resposta As String
'resposta = MsgBox("Relatório gerado com sucesso.", vbOKOnly)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Deleta tudo o que não é Quero Descontos
Windows("VisaoGeral_claro_TOS_DiaeMes.xlsm").Activate
With Sheets("Sheet1")
For lLin = .Cells(.Rows.Count, "F").End(xlUp).Row To 2 Step -1
If .Cells(lLin, "F") <> "Quero Descontos" Then .Rows(lLin).Delete
'Desafoga os processos pendentes do Windows a cada 100 linhas iteradas:
If lLin Mod 100 = 0 Then DoEvents
Next lLin
End With
Columns("E:F").Select
Selection.Delete Shift:=xlToLeft
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Copia o relatório e cola no Dashboard do QDC
Windows("VisaoGeral_claro_TOS_DiaeMes.xlsm").Activate
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("Dashboard_QDC.xlsx").Activate
Range("A5").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Select
ActiveSheet.Paste
End Sub