Eu criei uma macro que chama outra macro e, em seguida, para executar em cada planilha da planilha 4. A macro é executada na primeira planilha (planilha 4), mas não é executada em todas as outras planilhas.
A macro inicial que deve percorrer todas as planilhas a partir da planilha 4 é:
Sub DeleteLoop()
Dim WS_Count As Integer
Dim i As Integer
If MsgBox("Do you want to continue", vbYesNo, "User Input") = vbNo Then
Exit Sub
Else
If MsgBox("Are you sure? Have you taken a backup of your spreadsheet?", vbYesNo, "User Input") = vbNo Then
Exit Sub
Else
ActiveWorkbook.Worksheets(4).Activate
For i = ActiveSheet.Index To Sheets.Count
Call DeleteMacro
MsgBox "I'm currently on sheet " & ThisWorkbook.Sheets(i).Name
Next i
End If
End If
End Sub
A macro a ser executada em cada planilha é a seguinte:
Sub DeleteMacro()
Dim x As Integer
Dim y As Integer
Call UnProtectSheet
Range("F12").AutoFilter Field:=6, Criteria1:=Array("Paid", "Cancelled", " "), Operator:=xlFilterValues
y = Cells.Item(3, "L")
x = Cells.Item(8, "E")
If x > 0 Then
Application.Goto Reference:="R12C1"
Call NextVisibleRow
If y > 1 Then
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.EntireRow.Delete
Else
Selection.EntireRow.Delete
End If
End If
ActiveSheet.ShowAllData
Application.Goto Reference:="R12C1"
Call NextVisibleRow
Selection.End(xlDown).Select
If ActiveCell.Value = "Balance" Then
Selection.End(xlUp).Select
End If
Call NextVisibleRow
Call ProtectSheet
End Sub
Por favor, deixe-me saber o que estou fazendo de errado, o que impede que a macro seja executada em cada planilha da planilha 4 para a última planilha.