Página 1 de 1

SABER O QUE ESTA MACRO FAZ

Enviado: 20 Set 2018 às 22:01
por Mewertthon
Olá pessoal, estou aprendendo VBA e empaquei nesta macro e estou querendo saber de forma resumida o que ela faz. Em anexo eu coloquei a descrição da macro bem detalhada. Quem puder ajudar eu agradeço muito.

Sheets("Base").Select

Columns("M:AB").Select
Selection.Cut
Columns("CA:CA").Select
ActiveSheet.Paste
Columns("M:AB").Select
Selection.Delete Shift:=xlToLeft

Columns("BL:BL").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight

linha = 2
Do

celula1 = "BL" & linha
celula2 = "BM" & linha
celula3 = "BN" & linha
Range(celula1).Value = 1
Range(celula3).Value = 1
Range(celula2).Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[14]<>"""",5,IF(RC[11]<>"""",4,IF(RC[8]<>"""",3,IF(RC[5]<>"""",2,IF(RC[2]<>"""",1,0)))))"

linha = linha + 1

If Sheets("Base").Cells(linha, 1).Value = "" Then
Exit Do
End If

Loop

M1 = linha - 1
M2 = (M1 - 1) + M1
M3 = (M1 - 1) + M2
M4 = (M1 - 1) + M3
M5 = (M1 - 1) + M4


Dados = "A2:BM" & M1
Range(Dados).Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Dados = "A" & M1 + 1
Range(Dados).Select
ActiveSheet.Paste

linha = M1 + 1
Do
celula3 = "BN" & linha
Range(celula3).Value = 2
linha = linha + 1
If linha = M2 + 1 Then
Exit Do
End If
Loop
Dados = "BR2:BT" & M1
Range(Dados).Select
Selection.Cut
Dados = "BO" & M1 + 1
Range(Dados).Select
ActiveSheet.Paste


Dados = "A2:BM" & M1
Range(Dados).Select
Selection.Copy
Dados = "A" & M2 + 1
Range(Dados).Select
ActiveSheet.Paste
linha = M2 + 1
Do
celula3 = "BN" & linha
Range(celula3).Value = 3
linha = linha + 1
If linha = M3 + 1 Then
Exit Do
End If
Loop
Dados = "BU2:BW" & M1
Range(Dados).Select
Selection.Cut
Dados = "BO" & M2 + 1
Range(Dados).Select
ActiveSheet.Paste


Dados = "A2:BM" & M1
Range(Dados).Select
Selection.Copy
Dados = "A" & M3 + 1
Range(Dados).Select
ActiveSheet.Paste
linha = M3 + 1
Do
celula3 = "BN" & linha
Range(celula3).Value = 4
linha = linha + 1
If linha = M4 + 1 Then
Exit Do
End If
Loop
Dados = "BX2:BZ" & M1
Range(Dados).Select
Selection.Cut
Dados = "BO" & M3 + 1
Range(Dados).Select
ActiveSheet.Paste

Dados = "A2:BM" & M1
Range(Dados).Select
Selection.Copy
Dados = "A" & M4 + 1
Range(Dados).Select
ActiveSheet.Paste
linha = M4 + 1
Do
celula3 = "BN" & linha
Range(celula3).Value = 5
linha = linha + 1
If linha = M5 + 1 Then
Exit Do
End If
Loop
Dados = "CA2:CC" & M1
Range(Dados).Select
Selection.Cut
Dados = "BO" & M4 + 1
Range(Dados).Select
ActiveSheet.Paste

Columns("BL:BL").Select
Selection.NumberFormat = "General"

linha = 2

Do
celula1 = "BL" & linha
Range(celula1).Select
ActiveCell.FormulaR1C1 = "=IF(RC[2]=1,IF(RC[3]<>"""",2,1),IF(RC[3]<>"""",1,0))"
linha = linha + 1
If Sheets("Base").Cells(linha, 1).Value = "" Then
Exit Do
End If
Loop

Columns("BO:BO").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

linha = 2

Do
celula1 = "BO" & linha
Range(celula1).Select
ActiveCell.FormulaR1C1 = "=IF(RC[1]<>"""",IF(RC[2]<=2,1,0),0)"
linha = linha + 1
If Sheets("Base").Cells(linha, 1).Value = "" Then
Exit Do
End If
Loop

Columns("BP:BP").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

linha = 2

Do
celula1 = "BP" & linha
Range(celula1).Select
ActiveCell.FormulaR1C1 = "=IF(AND(RC[1]<>"""",RC[-63]=""Cancelado""),IF(RC[2]>2,1,0),0)"
linha = linha + 1
If Sheets("Base").Cells(linha, 1).Value = "" Then
Exit Do
End If
Loop

Sheets("Base Output").Select
Range("A2:BT50000").Select
Selection.ClearContents


Sheets("Base").Select

Columns("A:A").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A2").Select

linha = 2

Do
celula1 = "A" & linha
Range(celula1).Select
ActiveCell.FormulaR1C1 = "=MONTH(RC[16]) & "" "" &YEAR(RC[16])"
linha = linha + 1
If Sheets("Base").Cells(linha, 2).Value = "" Then
Exit Do
End If
Loop

celula1 = "A2:BT" & (linha - 1)
Range(celula1).Select
Selection.Copy
Sheets("Base Output").Select
Range("A2").Select
ActiveSheet.Paste


'Sheets("Dinamica").Select

'ActiveSheet.PivotTables("Tabela dinâmica1").PivotCache.Refresh

End Sub