Страницы: 1
RSS
Включение/отключение процедуры выделения строки цветом по клику мыши с помощью ToggleButton
 
Товарищи. Помогите пожалуйста. Не ругайтесь на меня, я только учусь.  Вопрос у меня для вас наверное простейший. Ничего подобного в архиве не нашел.  Имеется табличка, в ней следующее: по клику мыши выделяется цветом строка и при повторном клике по этой строке – выделение снимается (код в файле). Хочется чтобы этот "режим выделения"  РАБОТАЛ при нажатой ToggleButton и НЕ РАБОТАЛ – при ненажатой. И чтобы нажатая ToggleButton меняла цвет, чтобы было заметней что режим включен.
Изменено: Дмитррр - 12.09.2016 23:38:52
 
А зачем рычать? )) Уберите лишние "р" из ника.
Цитата
Дмитррр написал: выделяется цветом строка
Какая строка? Активная?
 
Такой уже существует. Выделяется любая строка на листе
 
Цитата
Дмитррр написал:
Такой уже существует
Видоизмените, добавьте символ какой-нибудь.
Решение готово - жду устранения замечания.
 
изменил
 
Немногим лучше...
В модуль листа:
Код
Private Sub ToggleButton1_Click()
    ActiveCell.Rows.Hidden = Me.ToggleButton1
End Sub
 
совсем не то. Ваш код скрывает выделенную строку. А нужно что бы выполнялась процедура выделения цветом (см.файл)
 
Сам не знаю, почему сделал скрытие вместо заливки ))
Код
Private Sub ToggleButton1_Click()
    If Me.ToggleButton1 Then
        ActiveCell.EntireRow.Interior.ColorIndex = 43
    Else
        ActiveCell.EntireRow.Interior.ColorIndex = xlNone
    End If
End Sub
 
Сейчас получилось что при нажатии кнопки строка выделяется цветом, а при отжатии выделение снимается. А нужно чтобы при нажатой кнопке выполнялась вот эта процедура полностью.
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range
If Target.EntireRow.Interior.ColorIndex = xlNone Then
Target.EntireRow.Interior.ColorIndex = 43
Else
Target.EntireRow.Interior.ColorIndex = xlNone
End If
End Sub
И при отжатой кнопке-соответственно не выполнялась.
 
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Me.ToggleButton1 Then
        If Target.EntireRow.Interior.ColorIndex = xlNone Then
            Target.EntireRow.Interior.ColorIndex = 43
        Else
            Target.EntireRow.Interior.ColorIndex = xlNone
        End If
    End If
End Sub
 
Класс! Юрий М, спасибо Вам большое!!! Простите за назойливость, ну а как еще сделать чтобы сама кнопка при нажатом состоянии окрашивалась в цвет.
 
Код
Private Sub ToggleButton1_Change()
    If Me.ToggleButton1 Then
        Me.ToggleButton1.BackColor = &HFF&
    Else
        Me.ToggleButton1.BackColor = &H8000000F
    End If
End Sub
 
Ну теперь ваще гуд. Огромнейшее вам спасибо, Юрий М!!!
Изменено: Дмитр_ - 13.09.2016 01:16:31
Страницы: 1
Читают тему
Наверх