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

Вход

Регистрация

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

 

= Мир MS Excel/Залить ячейку или строку по щелчку в определенной ячейке - Мир MS Excel

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

Excel 2016
Здравствуйте у меня по щелчку в нужной ячейке ставится галочка. Повторный щелчок убирает галочку. Хотел, чтобы заливалась или ячейка или диапазон строки если стоит галочка и без цвета если снимаю галочку.
[vba]
Код
Option Explicit
'в один клик ставим галочку в диапазоне "C5:C23"
'для подсчета проставленных галочек в ячейке С26 формула "=СЧЁТЕСЛИ(C5:C23;"a")"

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim i As Integer
    
    If Target.Cells.Count > 1 Then Exit Sub
        If IsNumeric(Sh.Name) Then
            For i = 5 To 26
            If Not Intersect(Target, Sh.Range("C5:C23")) Is Nothing Then
            'If Not Intersect(Target, Sh.Cells(i, 3)) Is Nothing Then
                Target.Font.Name = "Marlett"
                    If Target = vbNullString Then
                            Target = "a"
                        Else
                            Target = vbNullString
                    End If
            End If
                        If Application.WorksheetFunction.CountIf(Cells(i, 3), "a") > 0 Then
                    Cells(i, 2).Interior.ColorIndex = 6
                            Else
                    Cells(i, 2).Interior.ColorIndex = xlNone
                        End If
                     i = i + 1
              Next i
        End If
End Sub
[/vba]
 
Ответить
СообщениеЗдравствуйте у меня по щелчку в нужной ячейке ставится галочка. Повторный щелчок убирает галочку. Хотел, чтобы заливалась или ячейка или диапазон строки если стоит галочка и без цвета если снимаю галочку.
[vba]
Код
Option Explicit
'в один клик ставим галочку в диапазоне "C5:C23"
'для подсчета проставленных галочек в ячейке С26 формула "=СЧЁТЕСЛИ(C5:C23;"a")"

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Dim i As Integer
    
    If Target.Cells.Count > 1 Then Exit Sub
        If IsNumeric(Sh.Name) Then
            For i = 5 To 26
            If Not Intersect(Target, Sh.Range("C5:C23")) Is Nothing Then
            'If Not Intersect(Target, Sh.Cells(i, 3)) Is Nothing Then
                Target.Font.Name = "Marlett"
                    If Target = vbNullString Then
                            Target = "a"
                        Else
                            Target = vbNullString
                    End If
            End If
                        If Application.WorksheetFunction.CountIf(Cells(i, 3), "a") > 0 Then
                    Cells(i, 2).Interior.ColorIndex = 6
                            Else
                    Cells(i, 2).Interior.ColorIndex = xlNone
                        End If
                     i = i + 1
              Next i
        End If
End Sub
[/vba]

Автор - Oleg34
Дата добавления - 05.08.2018 в 17:17
RAN Дата: Воскресенье, 05.08.2018, 21:26 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Sh.Name) Then
        If Not Intersect(Target, Sh.Range("C5:C23")) Is Nothing Then
            Target.Font.Name = "Marlett"
            If Target = vbNullString Then
                Target.Value = "a"
'                Target.Interior.ColorIndex = 6 ' 1 ячейка
                Rows(Target.Row).Cells(1).Resize(, 20).Interior.ColorIndex = 6 ' 20 ячеек в строке
            Else
                Target.Value = Empty
'                Target.Interior.ColorIndex = xlNone ' 1 ячейка
                Rows(Target.Row).Cells(1).Resize(, 20).Interior.ColorIndex = xlNone ' 20 ячеек в строке
            End If
        End If
    End If
End Sub
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение[vba]
Код
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If IsNumeric(Sh.Name) Then
        If Not Intersect(Target, Sh.Range("C5:C23")) Is Nothing Then
            Target.Font.Name = "Marlett"
            If Target = vbNullString Then
                Target.Value = "a"
'                Target.Interior.ColorIndex = 6 ' 1 ячейка
                Rows(Target.Row).Cells(1).Resize(, 20).Interior.ColorIndex = 6 ' 20 ячеек в строке
            Else
                Target.Value = Empty
'                Target.Interior.ColorIndex = xlNone ' 1 ячейка
                Rows(Target.Row).Cells(1).Resize(, 20).Interior.ColorIndex = xlNone ' 20 ячеек в строке
            End If
        End If
    End If
End Sub
[/vba]

Автор - RAN
Дата добавления - 05.08.2018 в 21:26
Oleg34 Дата: Суббота, 11.08.2018, 10:21 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
RAN, Огромное спасибо. Извиняюсь, что не смог поблагодарить сразу. И небольшой вопрос в эту же тему. Я выбираю цвет ColorIndex = 6, а как выбрать цвет менее насыщенный?
 
Ответить
СообщениеRAN, Огромное спасибо. Извиняюсь, что не смог поблагодарить сразу. И небольшой вопрос в эту же тему. Я выбираю цвет ColorIndex = 6, а как выбрать цвет менее насыщенный?

Автор - Oleg34
Дата добавления - 11.08.2018 в 10:21
RAN Дата: Суббота, 11.08.2018, 10:55 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
В Excel существует 56 параметров ColorIndex, и неисчислимое количество оттенков Color.
Как вы из них будете выбирать цвет, менее насыщенный - понятия не имею. yes


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеВ Excel существует 56 параметров ColorIndex, и неисчислимое количество оттенков Color.
Как вы из них будете выбирать цвет, менее насыщенный - понятия не имею. yes

Автор - RAN
Дата добавления - 11.08.2018 в 10:55
Manyasha Дата: Суббота, 11.08.2018, 11:26 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Oleg34, я обычно делаю так:
1. крашу ячейку в нужный цвет (ячейка должна остаться активной)
2. в vba редакторе (alt+f11) в окне Immediate (ctrl+g) пишу[vba]
Код
?activecell.color
[/vba]наживаю enter
3. полученный код подставляю в [vba]
Код
.Interior.Color = код
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеOleg34, я обычно делаю так:
1. крашу ячейку в нужный цвет (ячейка должна остаться активной)
2. в vba редакторе (alt+f11) в окне Immediate (ctrl+g) пишу[vba]
Код
?activecell.color
[/vba]наживаю enter
3. полученный код подставляю в [vba]
Код
.Interior.Color = код
[/vba]

Автор - Manyasha
Дата добавления - 11.08.2018 в 11:26
Oleg34 Дата: Суббота, 11.08.2018, 13:26 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Manyasha, спасибо! )))
 
Ответить
СообщениеManyasha, спасибо! )))

Автор - Oleg34
Дата добавления - 11.08.2018 в 13:26
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Залить ячейку или строку по щелчку в определенной ячейке (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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