0
respostas

Macro só inicia através da janela do vba ou pelas teclas de atalho,

Minha macro só inicia quando a executo através da janela do vba ou das teclas de atalho que atribuí, mas quando acionada através do botão na planilha, a macro meio que para na metade do código. O que pode ser?

Segue abaixo o código:

Sub inventario_finalizar()

Application.ScreenUpdating = False

Sheets("Base de Dados").Unprotect
Sheets("Não Ajustados").Unprotect
ActiveSheet.Unprotect

Dim pa As Worksheet
Dim na As Worksheet
Dim bd As Worksheet
Dim nl As Integer
Dim nl2 As Integer

nl = Sheets("Não Ajustados").ListObjects(1).Range.Rows.Count + 7
nl2 = Sheets("Base de Dados").ListObjects(1).Range.Rows.Count + 7

Set bd = Sheets("Base de Dados")
Set na = Sheets("Não Ajustados")
Set pa = ActiveSheet
   
        If pa.Range("s1").Value > 0 Then
                    
            Columns("B:C").EntireColumn.Hidden = False
            Range("N:Q").EntireColumn.Hidden = True
                    
            pa.Range("b8").AutoFilter _
            Field:=13, _
            Criteria1:="Realizado", _
            Visibledropdown:=True
            
            pa.ListObjects(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
            
            If bd.Range("b8") <> "" Then
                   
                bd.Range("B" & nl2).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
            
                Else
            
                bd.Range("b8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                    :=False, Transpose:=False
            
            End If
            
            pa.ListObjects(1).Range.AutoFilter Field:=13
            
        End If
        
        If pa.Range("t1").Value > 0 Then
            
            Columns("C:M").EntireColumn.Hidden = True
            
            pa.Range("b8").AutoFilter _
            Field:=13, _
            Criteria1:="Não Realizado", _
            Visibledropdown:=True
            
            pa.ListObjects(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
            
            If na.Range("b8") <> "" Then
                na.Range("b" & nl).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
                
            Else
                na.Range("b8").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            
            End If
              
            Columns("C:M").EntireColumn.Hidden = False
            Columns("B:B").EntireColumn.Hidden = True
            
            pa.ListObjects(1).DataBodyRange.SpecialCells(xlCellTypeVisible).Copy
                
            If na.Range("c8") <> "" Then
                na.Range("c" & nl).PasteSpecial
                
            Else
                na.Range("c8").PasteSpecial
            
            End If
            
            na.ListObjects(1).Range.FormatConditions.Delete
            pa.ListObjects(1).Range.AutoFilter Field:=13
            
            
        End If
        
        MsgBox "Dados exportados com sucesso."

Columns("n:n").EntireColumn.Hidden = False
Columns("b:c").EntireColumn.Hidden = True
Sheets("Base de Dados").Protect
Sheets("Não Ajustados").Protect
ActiveSheet.Protect

Application.ScreenUpdating = True

End Sub