Профессиональные приемы работы в Microsoft Excel

Пожалуйста, войдите или зарегистрируйтесь.


Расширенный поиск  

Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Автор Тема: Красим ячейку А - в ячейку Б, отметка.  (Прочитано 990 раз)

0 Пользователей и 1 Гость просматривают эту тему.

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 954

Доброго дня, друзья!
Нашел на просторах Интернета много примеров, когда, например: в ячейку B2 вносим значение, при этом ячейка C2 становится зеленой. Но долго искал другую схему: ячейку B2 красим в зеленый цвет, при этом в ячейке C2 появляется значение, ну например: "<>".
Наконец нашел, но код, отслеживающий это действо, располагается в листе, что очень неудобно.
Подскажите, пожалуйста, возможно ли как-то реализовать эту схему, но с кодом следящим не из листа? Ну, там через классы или еще как? Я, к сожалению в классах пока полный нуб. Поэтому буду признателен любой помощи.
На скрепке, файлик, следящий по первому сценарию.
Записан
Путей к вершине - множество. Этот один из многих!

nilem

  • Постоялец
  • ***
  • Уважение: +68/-0
  • Оффлайн Оффлайн
  • Сообщений: 345

GWolf, добрый вечер!
А почему не нравится, что код находится в модуле листа?
Вроде нормально все работает...
Записан

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 954

Доброго дня, уважаемый nilem! Спасибо что откликнулись.
Дело в том, что лист содержит некую таблицу с набором данных и кучей отметок и форматов настроенных пользователем. И когда сей лист приходится копировать в другую книгу. А копирую именно лист, а не данные или таблицу, что бы не сбивать настройки размеров столбцов и т.п., то кусок кода в листе, уже не соответствующий новой задаче вообщем то не нужен. А чистить его программно - не проще ли сразу его разместить, как я и описал в первом посте, т.е. вне листа?
Записан
Путей к вершине - множество. Этот один из многих!

Serge 007

  • Администратор
  • Ветеран
  • *****
  • Уважение: +341/-0
  • Оффлайн Оффлайн
  • Сообщений: 3 004
    • Мир Excel

GWolf, здравствуйте

...кусок кода в листе, уже не соответствующий новой задаче вообщем то не нужен. А чистить его программно - не проще ли сразу его разместить, как я и описал в первом посте, т.е. вне листа?
Не проще. Но вопрос в другом - зачем вообще что-то "чистить" в коде?
Записан
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Яндекс-деньги: 41001419691823 | WMR:126292472390

nilem

  • Постоялец
  • ***
  • Уважение: +68/-0
  • Оффлайн Оффлайн
  • Сообщений: 345

Скопировать лист в книгу и сохранить ее (книгу) без поддержки макросов - не?
Или попробуйте разместить ваш код в модуле ЭтаКнига
Private Sub Workbook_SheetSelectionChange
только надо будет добавить условие, чтобы срабатывал на определенном листе.
Записан

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 954

Добрый вечер, друзья!
Спасибо что откликнулись.
Скопировать лист в книгу и сохранить ее (книгу) без поддержки макросов - не?
Это не вариант. В книгу, куда лист копируется, свои макросы и, привнесенные, ну совсем не к месту будут. И без поддержки, как сами понимаете, не выйдет.
А вот эту идею:
Цитировать
Или попробуйте разместить ваш код в модуле ЭтаКнига
Private Sub Workbook_SheetSelectionChange
только надо будет добавить условие, чтобы срабатывал на определенном листе.
я попробовал реализовать. Вроде получилось. Вот только бы еще после выдачи сообщения о том что идентификатор уже установлен, курсор оставался на ячейке с крайним окрашиванием. Шо-то не могу допилить.
Пример реализации в файле.
Не проще.
Согласен. Да и шо-то мне никак эти классы не даются ;))
Записан
Путей к вершине - множество. Этот один из многих!

Serge 007

  • Администратор
  • Ветеран
  • *****
  • Уважение: +341/-0
  • Оффлайн Оффлайн
  • Сообщений: 3 004
    • Мир Excel

...после выдачи сообщения о том что идентификатор уже установлен, курсор оставался на ячейке с крайним окрашиванием...
Не понял, о чём речь?
Записан
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Яндекс-деньги: 41001419691823 | WMR:126292472390

GWolf

  • Старожил
  • ****
  • Уважение: +50/-0
  • Оффлайн Оффлайн
  • Сообщений: 954

Не понял, о чём речь?
Дело в том, что макрос срабатывает только при переходе на любую другую ячейку, отличную от окрашенной. Не соображу, как его вернуть по координатам окрашенной?
« Последнее редактирование: 04.06.2021, 10:28:27 от GWolf »
Записан
Путей к вершине - множество. Этот один из многих!

nilem

  • Постоялец
  • ***
  • Уважение: +68/-0
  • Оффлайн Оффлайн
  • Сообщений: 345

возможно, это нужно было:
Function ChangeColor(Shh As Worksheet)
With Shh
    If .Range(myAddress).Interior.ColorIndex = myColor Then Exit Function
    nR = .Range(myAddress).Row
    If .Cells(nR, 2).Text <> "<>" Then
        .Cells(nR, 2) = "<>"
    Else
        With Application
            .EnableEvents = False
            .Range(myAddress).Activate
            .EnableEvents = True
        End With
        MsgBox "В этой строке (" & nR & ") уже установлен идентификатор.", vbCritical + vbOKOnly, ""
    End If
End With
End Function
Записан
 



Темы без ответов

24.01.2020 14:03 На диаграмме Ганта несоответствие оси Y 2754
09.08.2019 14:09 Макрос для заполнения таблиц через форму 3990
18.07.2019 16:02 Рассылка почты из Excel при помощи почтовой программы TheBAT! 3613
09.07.2019 20:39 Кредит с уменьшением периода выплат 3611
28.05.2019 21:09 Сделать несколько скриптов для рабочей таблицы 4951
05.03.2019 17:00 Последовательный вывод таблиц Excel в один документ Word без шаблона 4344
05.03.2019 09:29 Нежелательные изменение размеров колонтитула при редактировании 4043
07.02.2019 01:36 Как удалить дубликаты из выпадающего связанного списка? 5086
20.01.2019 12:38 Все варианты частичного суммирования 4268
13.01.2019 12:24 Заполнение диапазона числами - в виде кластеров 3784





Яндекс цитирования msexcel.ru Яндекс.Метрика

Страница сгенерирована за 0.189 секунд. Запросов: 114.