Public iActivate As Boolean
Private Sub Worksheet_Activate()
If Not iActivate Then
Rem Здесь Ваши действия
'
'
'
iActivate = True
End If
End Sub
Проверка активации листа?
В процедуре активации листа записанно несколько действий. Проверяются ячейки с другго листа и записываются значения на активированном листе. Проблема в том что в одну ячейку значения дописываются друг за другом. А если начинаешь переключаться между листами, то одно и тоже дописывается столько раз сколько раз лист активируется. Как сделать проверку что ли, ну чтобы значения в ячейках проверялись только при первой активации, а при последующих не изменялись?
Один из возможных вариантов решения Вашего вопроса :
А можно ли переменной iActivate присваивать значение FALSE в другом коде? Ситуация такая, на листе1 нажимается кнопка : проверяются некторые параметры и в ячейки записываются ответы. При активации другого листа2 проверяются ответы на листе1 и на основании их выдаются текстовые ответы пользователю. Получается что единажды перейдя на лист2, он больше никогда не проверит значения с листа1. хотелось бы чтобы по нажатию на кнопку на листе1 эта переменная обнулялась и при активации листа2 он считал что это впервые.
Можно, но только если кнопка расположена в другом рабочем листе, то переменную iActivate необходимо об'являть в стандартном модуле.