Excel VBA Макросы: Как сделать: если лист не заполнен, то нельзя перейти на другой лист?

Автор Посетитель, 09 июля 2019, 13:52

Посетитель

Возможно ли настроить книгу или отдельные листы так, чтобы пока пользователь на первом листе не введет свои основные данные - ФИО, возраст и т.д. - не смог перейти к другим листам.

На листе "основные данные" пока не будут заполнены ячейки D4 D7 D10 D13, нельзя будет перейти к следующему листу, даже если его попытаться выбрать вручную.

[вложение удалено администратором]

Администратор

Начиная с какой-то версии экселя, появилось событие "Worksheet_Deactivate".
Если ваша версия экселя позволяет использовать это событие, то попробуйте использовать этот код.

В файле, этот код находится в модуле листа "Основные данные".

Private Sub Worksheet_Deactivate()
    If WorksheetFunction.CountA(Range("D4,D7,D10,D13")) <> 4 Then
        Me.Select
        MsgBox "Заполните все ячейки на листе """ & Me.Name & """.", vbExclamation
    End If
End Sub

[вложение удалено администратором]