Все, что вы делаете в вашем цикле, находится внутри
If ActiveSheet.Visible = True Then
Sheets(ActiveSheet.Index + 1).Activate
*SOME PROCEDURES*
End If
Поэтому, когда условие не выполняется, цикл ничего не делает и поэтому никогда не прогрессирует.
Вероятно, правильнее всего сделать Sheets(ActiveSheet.Index + 1).Activate
перед условием if.