Notifications
Clear all

SABER O QUE ESTA MACRO FAZ

2 Posts
2 Usuários
0 Reactions
1,477 Visualizações
(@mewertthon)
Posts: 0
New Member
Topic starter
 

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
 
Postado : 20/09/2018 3:13 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

Mewertthon,

Bom dia!

Pedimos, por gentileza, da próxima vez que inserir código VBA, utilizar a ferramenta CODE existente logo acima da caixa de mensagens (quinto botão da esquerda para a direita).

 
Postado : 21/09/2018 6:47 am