Добрый день. Суть проблемы в следующем: Есть 5 вариантов расчета алгоритма: Допустим есть столбец со значениями: 1 2 3 4 5 Нужно чтобы при нажатии на ячейку рядом с любым из данных 5 столбцов появлялась галочка, точка, менялся цвет или какое-то явное выделение и при этом данной ячейке, где появляется галочка значение данной ячейка равнялось 1. Также необходимо чтобы из данного диапазона чисел можно было выбрать только 1 активную. Буду крайне признателен, если поможете...если сильно сложно в реализации, тогда можно за денюшку...
Добрый день. Суть проблемы в следующем: Есть 5 вариантов расчета алгоритма: Допустим есть столбец со значениями: 1 2 3 4 5 Нужно чтобы при нажатии на ячейку рядом с любым из данных 5 столбцов появлялась галочка, точка, менялся цвет или какое-то явное выделение и при этом данной ячейке, где появляется галочка значение данной ячейка равнялось 1. Также необходимо чтобы из данного диапазона чисел можно было выбрать только 1 активную. Буду крайне признателен, если поможете...если сильно сложно в реализации, тогда можно за денюшку...Joonic
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.CountLarge > 1 Then Exit Sub If Intersect(Target, Range("B1:B5")) Is Nothing Then Exit Sub With Range("B1:B5") .Value = "": .Interior.Color = xlNone End With With Target .Value = 1: .Interior.ColorIndex = 45 End With End Sub
[/vba]
Возможно, что-то вроде этого: [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.CountLarge > 1 Then Exit Sub If Intersect(Target, Range("B1:B5")) Is Nothing Then Exit Sub With Range("B1:B5") .Value = "": .Interior.Color = xlNone End With With Target .Value = 1: .Interior.ColorIndex = 45 End With End Sub
Спасибо огромное)) Блин, как все сложно...только начинаю разбираться...это понял, только не понял, почему у меня галочка не появляется, а вместо нее 1...? (на первом листе значения С18:С23 по-моему...)
Спасибо огромное)) Блин, как все сложно...только начинаю разбираться...это понял, только не понял, почему у меня галочка не появляется, а вместо нее 1...? (на первом листе значения С18:С23 по-моему...)Joonic
Тоже вариант... А как мне сделать, если мне нужно выделить сразу несколько колонок, и в каждой отдельной можно выбрать только одно значение...? Буду очень благораден помощи...
Тоже вариант... А как мне сделать, если мне нужно выделить сразу несколько колонок, и в каждой отдельной можно выбрать только одно значение...? Буду очень благораден помощи...Joonic
а Вы весь VBA решили изучить с помощью форума? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) a = Array("b3:b8", "e3:e8", "f12:f17") If Target.Count > 1 Then Exit Sub For Each x In a If Not Intersect(Target, Range(x)) Is Nothing Then Range(x).Value = 0 Target.Value = 1 Exit Sub End If Next End Sub
[/vba]
а Вы весь VBA решили изучить с помощью форума? [vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) a = Array("b3:b8", "e3:e8", "f12:f17") If Target.Count > 1 Then Exit Sub For Each x In a If Not Intersect(Target, Range(x)) Is Nothing Then Range(x).Value = 0 Target.Value = 1 Exit Sub End If Next End Sub
Это было бы идеально)) Шучу, нет просто дипломный проект горит, а на изучение времени вообще нету, нужно найти быстрое решение и его применить..А проект не из сферы ИТ...просто знаю, что есть на свете добрые люди, которые могут помочь...)
Надеюсь последний вопрос, а как делать, если строки объединены? Через запятую не выходит в кавычках вставить...( Если я уже достал вас своими вопросами, дайте контакты, договоримся об платных консультациях и все...)
Еще такой вопрос, а например сложно сделать так, чтобы в ячейку вставить картинку и при нажатии на нее уже активировалась ячейка и значение ее приравнивалась к 1... ну все те же требования чтобы она была только единственной из ряда активная...ну и красилась цветом или как-то выделялась на фоне других...?
Это было бы идеально)) Шучу, нет просто дипломный проект горит, а на изучение времени вообще нету, нужно найти быстрое решение и его применить..А проект не из сферы ИТ...просто знаю, что есть на свете добрые люди, которые могут помочь...)
Надеюсь последний вопрос, а как делать, если строки объединены? Через запятую не выходит в кавычках вставить...( Если я уже достал вас своими вопросами, дайте контакты, договоримся об платных консультациях и все...)
Еще такой вопрос, а например сложно сделать так, чтобы в ячейку вставить картинку и при нажатии на нее уже активировалась ячейка и значение ее приравнивалась к 1... ну все те же требования чтобы она была только единственной из ряда активная...ну и красилась цветом или как-то выделялась на фоне других...?Joonic
про объединенные ячейки скорее всего не понял, честно говоря. у вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке? с разбегу не скажу, думать надо.
сложно сделать так, чтобы в ячейку вставить картинку
не знаю. стараюсь не связываться с картинками. жена ругает
про объединенные ячейки скорее всего не понял, честно говоря. у вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке? с разбегу не скажу, думать надо.
про объединенные ячейки скорее У вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке? с разбегу не скажу, думать надо.
Да, все верно.
Столбец 1 и столбец 2 независимы друг от друга. Нужно сделать тоже самое. То есть из столбца 1 можно было выбрать одну из объединенных ячеек: h3 h7 или h12 и также должно быть как и прежде: чтобы появлялась галочка и значение равнялось 1. Остальные оставались равной 0. И также только 1 из вариантов можно было выбрать. И также столбец 2. (пс: столбцов будет потом много, просто чтобы я знал, куда добавлять...а то видите в первый раз код другой же был...)
Если не получится, то придется делать без объединенных ячеек, там вроде бы получается просто пропускать строчки, если пункты идут не подряд в строках...
про объединенные ячейки скорее У вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке? с разбегу не скажу, думать надо.
Да, все верно.
Столбец 1 и столбец 2 независимы друг от друга. Нужно сделать тоже самое. То есть из столбца 1 можно было выбрать одну из объединенных ячеек: h3 h7 или h12 и также должно быть как и прежде: чтобы появлялась галочка и значение равнялось 1. Остальные оставались равной 0. И также только 1 из вариантов можно было выбрать. И также столбец 2. (пс: столбцов будет потом много, просто чтобы я знал, куда добавлять...а то видите в первый раз код другой же был...)
Если не получится, то придется делать без объединенных ячеек, там вроде бы получается просто пропускать строчки, если пункты идут не подряд в строках...Joonic
Сообщение отредактировал Joonic - Воскресенье, 08.06.2014, 20:24
Private Sub Worksheet_SelectionChange(ByVal Target As Range) a = Array("b3:b8", "e3:e8", "f12:f17") b = VBA.Array(VBA.Array("h3:h5,h7:h9,h12:h14", "h3:h5", "h7:h9", "h12:h14"), _ VBA.Array("j3:j5,j7:j9", "j3:j5", "j7:j9")) If Target.Cells(1).MergeArea.Count < Target.Cells.Count Then Exit Sub For Each x In a If Not Intersect(Target, Range(x)) Is Nothing Then Range(x).Value = 0 Target.Value = 1 Exit Sub End If Next For i = 0 To UBound(b) If Not Intersect(Target, Range(b(i)(0))) Is Nothing Then For j = 1 To UBound(b(i)) Range(b(i)(j)).Value = 0 Next Target.Value = 1 Exit Sub End If Next End Sub
[/vba]
пс. надеюсь, тому, кто изобрёл объединенные ячейки в Excel, икалось много раз.
правда штоле?.. а вы заметили что и таблички разные?
как-то так:
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range) a = Array("b3:b8", "e3:e8", "f12:f17") b = VBA.Array(VBA.Array("h3:h5,h7:h9,h12:h14", "h3:h5", "h7:h9", "h12:h14"), _ VBA.Array("j3:j5,j7:j9", "j3:j5", "j7:j9")) If Target.Cells(1).MergeArea.Count < Target.Cells.Count Then Exit Sub For Each x In a If Not Intersect(Target, Range(x)) Is Nothing Then Range(x).Value = 0 Target.Value = 1 Exit Sub End If Next For i = 0 To UBound(b) If Not Intersect(Target, Range(b(i)(0))) Is Nothing Then For j = 1 To UBound(b(i)) Range(b(i)(j)).Value = 0 Next Target.Value = 1 Exit Sub End If Next End Sub
[/vba]
пс. надеюсь, тому, кто изобрёл объединенные ячейки в Excel, икалось много раз.