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

Вход

Регистрация

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

 

= Мир MS Excel/Сохранение цвета ячеек на обоих целевых столбцах - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение цвета ячеек на обоих целевых столбцах (Макросы/Sub)
Сохранение цвета ячеек на обоих целевых столбцах
rotten41 Дата: Вторник, 14.02.2017, 03:27 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 163
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброе утро, специалисты по экселю.
Помогите решить вопрос, решение для которого - я сам найти не смог.

Написал макрос, который действует в двух столбцах - C и E.
Этот макрос - окрашивает выделенную ячейку в этих столбцах в зеленый цвет.

Если выделить ячейку в других диапазонах (не столбцах C и E) - то зеленый цвет последней выделенной ячейки целевого столбца - не теряется.
Проблема в том, что выделение зеленым цветом теряется - если выделить ячейку из другого целевого столбца (например если из столбца С - перейти в столбец E).
Как сохранить выделение зеленым цветом ячейки целевых столбцов - при переходе из одного целевого столбца в другой ?
(целевые столбцы - это C и E)

[vba]
Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([c:c], Target) Is Nothing Then
     Static previous_selection As String
      If previous_selection <> "" Then
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If
      Target.Interior.Color = RGB(181, 244, 0)
      previous_selection = Target.Address
End If
    
    If Not Intersect([e:e], Target) Is Nothing Then
    If previous_selection <> "" Then
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
    End If
     Target.Interior.Color = RGB(181, 244, 0)
      previous_selection = Target.Address
End If
End Sub

[/vba]
К сообщению приложен файл: 3241.xls (36.0 Kb)
 
Ответить
СообщениеДоброе утро, специалисты по экселю.
Помогите решить вопрос, решение для которого - я сам найти не смог.

Написал макрос, который действует в двух столбцах - C и E.
Этот макрос - окрашивает выделенную ячейку в этих столбцах в зеленый цвет.

Если выделить ячейку в других диапазонах (не столбцах C и E) - то зеленый цвет последней выделенной ячейки целевого столбца - не теряется.
Проблема в том, что выделение зеленым цветом теряется - если выделить ячейку из другого целевого столбца (например если из столбца С - перейти в столбец E).
Как сохранить выделение зеленым цветом ячейки целевых столбцов - при переходе из одного целевого столбца в другой ?
(целевые столбцы - это C и E)

[vba]
Код

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Not Intersect([c:c], Target) Is Nothing Then
     Static previous_selection As String
      If previous_selection <> "" Then
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
     End If
      Target.Interior.Color = RGB(181, 244, 0)
      previous_selection = Target.Address
End If
    
    If Not Intersect([e:e], Target) Is Nothing Then
    If previous_selection <> "" Then
         Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
    End If
     Target.Interior.Color = RGB(181, 244, 0)
      previous_selection = Target.Address
End If
End Sub

[/vba]

Автор - rotten41
Дата добавления - 14.02.2017 в 03:27
_Boroda_ Дата: Вторник, 14.02.2017, 03:42 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Можно сделать для каждого столбца свою переменную
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([c:c], Target) Is Nothing Then
        Static previous_selection As String
        If previous_selection <> "" Then
           Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
        End If
        Target.Interior.Color = RGB(181, 244, 0)
        previous_selection = Target.Address
    End If
    
    If Not Intersect([e:e], Target) Is Nothing Then
        Static previous_selection1 As String
        If previous_selection1 <> "" Then
           Range(previous_selection1).Interior.ColorIndex = xlColorIndexNone
        End If
        Target.Interior.Color = RGB(181, 244, 0)
        previous_selection1 = Target.Address
    End If
End Sub
[/vba]
К сообщению приложен файл: 3241_1.xls (36.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеМожно сделать для каждого столбца свою переменную
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect([c:c], Target) Is Nothing Then
        Static previous_selection As String
        If previous_selection <> "" Then
           Range(previous_selection).Interior.ColorIndex = xlColorIndexNone
        End If
        Target.Interior.Color = RGB(181, 244, 0)
        previous_selection = Target.Address
    End If
    
    If Not Intersect([e:e], Target) Is Nothing Then
        Static previous_selection1 As String
        If previous_selection1 <> "" Then
           Range(previous_selection1).Interior.ColorIndex = xlColorIndexNone
        End If
        Target.Interior.Color = RGB(181, 244, 0)
        previous_selection1 = Target.Address
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 14.02.2017 в 03:42
rotten41 Дата: Вторник, 14.02.2017, 07:21 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 163
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, то что надо.
Большое спасибо.
 
Ответить
Сообщение_Boroda_, то что надо.
Большое спасибо.

Автор - rotten41
Дата добавления - 14.02.2017 в 07:21
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Сохранение цвета ячеек на обоих целевых столбцах (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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