Здравствуйте есть формула условного форматирования: [vba]
Код
i = ActiveCell.Address(0, 0) MyFormula = "=ИЛИ(И(ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));И(ЯЧЕЙКА(""строка"")<>СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")=СТОЛБЕЦ(" & i & ")))"
[/vba]
и глобальная переменная: [vba]
Код
Dim Flag As Boolean Sub Coordinate_Selection_On() Flag = True End Sub Sub Coordinate_Selection_Off() Flag = False End Sub
[/vba] Пожалуйста, подскажите, как добавить в формулу Flag = False, чтобы в дальнейшем можно было включать/выключать условное форматирование Условием, типа If Flag = False Then Cells.FormatConditions.Delete не подходит
Здравствуйте есть формула условного форматирования: [vba]
Код
i = ActiveCell.Address(0, 0) MyFormula = "=ИЛИ(И(ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));И(ЯЧЕЙКА(""строка"")<>СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")=СТОЛБЕЦ(" & i & ")))"
[/vba]
и глобальная переменная: [vba]
Код
Dim Flag As Boolean Sub Coordinate_Selection_On() Flag = True End Sub Sub Coordinate_Selection_Off() Flag = False End Sub
[/vba] Пожалуйста, подскажите, как добавить в формулу Flag = False, чтобы в дальнейшем можно было включать/выключать условное форматирование Условием, типа If Flag = False Then Cells.FormatConditions.Delete не подходит sashka
Сообщение отредактировал sashka - Четверг, 04.11.2021, 19:59
R_Dmitry, Я не полностью изложил то, чего хочу сделать, сейчас попробую подробней формулой УФ - делаю подсветку строки и столбца хочу добиться, чтобы при этом была возможность отмены действий на листе (Ctrl+Z) условиями If можно добиться необходимого результата, но умрет отмена действий на листе Например, если в формулу добавить: $A$1<>""выкл""; и соответственно набрать в ячейку а1=выкл подсветка будет выключаться и включаться Теперь вопрос, как сделать в формуле УФ типа ""Flag""=""False"" чтобы можно было вкл\выкл условное форматирование (в этом варианте Ctrl+Z должно работать) в дальнейшем, если активная ячейка вне рабочего диапазона, можно так [vba]
Код
If Intersect(Target, WorkRange) Is Nothing Then Flag = False End If
[/vba] при этом, будет работать Ctrl+Z
R_Dmitry, Я не полностью изложил то, чего хочу сделать, сейчас попробую подробней формулой УФ - делаю подсветку строки и столбца хочу добиться, чтобы при этом была возможность отмены действий на листе (Ctrl+Z) условиями If можно добиться необходимого результата, но умрет отмена действий на листе Например, если в формулу добавить: $A$1<>""выкл""; и соответственно набрать в ячейку а1=выкл подсветка будет выключаться и включаться Теперь вопрос, как сделать в формуле УФ типа ""Flag""=""False"" чтобы можно было вкл\выкл условное форматирование (в этом варианте Ctrl+Z должно работать) в дальнейшем, если активная ячейка вне рабочего диапазона, можно так [vba]
Код
If Intersect(Target, WorkRange) Is Nothing Then Flag = False End If
вот, например, так Ctrl+Z умерла, потому что в файле появились изменения данных добавленные макросом (в А1 добавился текст 'выкл') [vba]
Код
Set WorkRange = Range("A4:M35") i = ActiveCell.Address(0, 0) MyFormula = "=ИЛИ(И($A$1<>""выкл"";ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));)"
'если активная ячейка вне рабочего диапазона If Intersect(Target, WorkRange) Is Nothing Then Range("A1") = "выкл" Else Range("A1") = "" End If
[/vba] а так, если удастся внедрить в формулу УФ Flag = False Ctrl+Z должно работать, так как никаких изменений данных в файле не произошло [vba]
Код
MyFormula = "=ИЛИ(И(""Flag""=""False"";... ...
'если активная ячейка вне рабочего диапазона If Intersect(Target, WorkRange) Is Nothing Then Flag = False Else Flag = True End If
[/vba]
вот, например, так Ctrl+Z умерла, потому что в файле появились изменения данных добавленные макросом (в А1 добавился текст 'выкл') [vba]
Код
Set WorkRange = Range("A4:M35") i = ActiveCell.Address(0, 0) MyFormula = "=ИЛИ(И($A$1<>""выкл"";ЯЧЕЙКА(""строка"")=СТРОКА(" & i & ");ЯЧЕЙКА(""столбец"")<>СТОЛБЕЦ(" & i & "));)"
'если активная ячейка вне рабочего диапазона If Intersect(Target, WorkRange) Is Nothing Then Range("A1") = "выкл" Else Range("A1") = "" End If
[/vba] а так, если удастся внедрить в формулу УФ Flag = False Ctrl+Z должно работать, так как никаких изменений данных в файле не произошло [vba]
Код
MyFormula = "=ИЛИ(И(""Flag""=""False"";... ...
'если активная ячейка вне рабочего диапазона If Intersect(Target, WorkRange) Is Nothing Then Flag = False Else Flag = True End If