Здравствуйте у меня по щелчку в нужной ячейке ставится галочка. Повторный щелчок убирает галочку. Хотел, чтобы заливалась или ячейка или диапазон строки если стоит галочка и без цвета если снимаю галочку. [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
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
RAN, Огромное спасибо. Извиняюсь, что не смог поблагодарить сразу. И небольшой вопрос в эту же тему. Я выбираю цвет ColorIndex = 6, а как выбрать цвет менее насыщенный?
RAN, Огромное спасибо. Извиняюсь, что не смог поблагодарить сразу. И небольшой вопрос в эту же тему. Я выбираю цвет ColorIndex = 6, а как выбрать цвет менее насыщенный?Oleg34
В Excel существует 56 параметров ColorIndex, и неисчислимое количество оттенков Color. Как вы из них будете выбирать цвет, менее насыщенный - понятия не имею.
В Excel существует 56 параметров ColorIndex, и неисчислимое количество оттенков Color. Как вы из них будете выбирать цвет, менее насыщенный - понятия не имею. RAN
Oleg34, я обычно делаю так: 1. крашу ячейку в нужный цвет (ячейка должна остаться активной) 2. в vba редакторе (alt+f11) в окне Immediate (ctrl+g) пишу[vba]
Код
?activecell.color
[/vba]наживаю enter 3. полученный код подставляю в [vba]
Код
.Interior.Color = код
[/vba]
Oleg34, я обычно делаю так: 1. крашу ячейку в нужный цвет (ячейка должна остаться активной) 2. в vba редакторе (alt+f11) в окне Immediate (ctrl+g) пишу[vba]
Код
?activecell.color
[/vba]наживаю enter 3. полученный код подставляю в [vba]