Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выключить/включить условное форматирование - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выключить/включить условное форматирование (Макросы/Sub)
Выключить/включить условное форматирование
sashka Дата: Четверг, 04.11.2021, 19:54 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте
есть формула условного форматирования:
[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 - Четверг, 04.11.2021, 19:59
 
Ответить
СообщениеЗдравствуйте
есть формула условного форматирования:
[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
Дата добавления - 04.11.2021 в 19:54
R_Dmitry Дата: Четверг, 04.11.2021, 20:32 | Сообщение № 2
Группа: Друзья
Ранг: Участник
Сообщений: 74
Репутация: 34 ±
Замечаний: 0% ±

2010
Вот Вам пример, изучайте
К сообщению приложен файл: FormatCondition.xlsm (18.3 Kb)


{Skype : RDG_Dmitry} Если программа тебе понятна,значит она уже устарела
 
Ответить
СообщениеВот Вам пример, изучайте

Автор - R_Dmitry
Дата добавления - 04.11.2021 в 20:32
sashka Дата: Четверг, 04.11.2021, 21:30 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

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
К сообщению приложен файл: New2.xlsm (22.8 Kb)
 
Ответить
Сообщение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

Автор - sashka
Дата добавления - 04.11.2021 в 21:30
R_Dmitry Дата: Четверг, 04.11.2021, 21:45 | Сообщение № 4
Группа: Друзья
Ранг: Участник
Сообщений: 74
Репутация: 34 ±
Замечаний: 0% ±

2010
после выполнения кода Вы теряете возможность отмены действия


{Skype : RDG_Dmitry} Если программа тебе понятна,значит она уже устарела
 
Ответить
Сообщениепосле выполнения кода Вы теряете возможность отмены действия

Автор - R_Dmitry
Дата добавления - 04.11.2021 в 21:45
sashka Дата: Четверг, 04.11.2021, 21:53 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

после выполнения кода Вы теряете возможность отмены действия

R_Dmitry, какого именно кода?
 
Ответить
Сообщение
после выполнения кода Вы теряете возможность отмены действия

R_Dmitry, какого именно кода?

Автор - sashka
Дата добавления - 04.11.2021 в 21:53
R_Dmitry Дата: Четверг, 04.11.2021, 21:55 | Сообщение № 6
Группа: Друзья
Ранг: Участник
Сообщений: 74
Репутация: 34 ±
Замечаний: 0% ±

2010
VBA
Который вносит изменения данных в файле


{Skype : RDG_Dmitry} Если программа тебе понятна,значит она уже устарела

Сообщение отредактировал R_Dmitry - Четверг, 04.11.2021, 21:59
 
Ответить
СообщениеVBA
Который вносит изменения данных в файле

Автор - R_Dmitry
Дата добавления - 04.11.2021 в 21:55
sashka Дата: Четверг, 04.11.2021, 22:13 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

вот, например, так 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]


Сообщение отредактировал sashka - Пятница, 05.11.2021, 07:59
 
Ответить
Сообщениевот, например, так 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]

Автор - sashka
Дата добавления - 04.11.2021 в 22:13
R_Dmitry Дата: Четверг, 04.11.2021, 23:07 | Сообщение № 8
Группа: Друзья
Ранг: Участник
Сообщений: 74
Репутация: 34 ±
Замечаний: 0% ±

2010
Удачи


{Skype : RDG_Dmitry} Если программа тебе понятна,значит она уже устарела
 
Ответить
СообщениеУдачи

Автор - R_Dmitry
Дата добавления - 04.11.2021 в 23:07
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Выключить/включить условное форматирование (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!