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

Вход

Регистрация

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

 

= Мир MS Excel/Как выделить ячейку при нажатии (Галочкой) и задать =1 - Мир MS Excel

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

Excel 2007
Добрый день. Суть проблемы в следующем:
Есть 5 вариантов расчета алгоритма:
Допустим есть столбец со значениями:
1
2
3
4
5
Нужно чтобы при нажатии на ячейку рядом с любым из данных 5 столбцов появлялась галочка, точка, менялся цвет или какое-то явное выделение и при этом данной ячейке, где появляется галочка значение данной ячейка равнялось 1.
Также необходимо чтобы из данного диапазона чисел можно было выбрать только 1 активную.
Буду крайне признателен, если поможете...если сильно сложно в реализации, тогда можно за денюшку...
 
Ответить
СообщениеДобрый день. Суть проблемы в следующем:
Есть 5 вариантов расчета алгоритма:
Допустим есть столбец со значениями:
1
2
3
4
5
Нужно чтобы при нажатии на ячейку рядом с любым из данных 5 столбцов появлялась галочка, точка, менялся цвет или какое-то явное выделение и при этом данной ячейке, где появляется галочка значение данной ячейка равнялось 1.
Также необходимо чтобы из данного диапазона чисел можно было выбрать только 1 активную.
Буду крайне признателен, если поможете...если сильно сложно в реализации, тогда можно за денюшку...

Автор - Joonic
Дата добавления - 06.06.2014 в 21:38
nilem Дата: Пятница, 06.06.2014, 22:15 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
Возможно, что-то вроде этого:
[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
[/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
[/vba]

Автор - nilem
Дата добавления - 06.06.2014 в 22:15
Joonic Дата: Пятница, 06.06.2014, 23:59 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Не совсем еще разобрался, можете показать на примере?
К сообщению приложен файл: primer.xlsm (11.4 Kb)
 
Ответить
СообщениеНе совсем еще разобрался, можете показать на примере?

Автор - Joonic
Дата добавления - 06.06.2014 в 23:59
Michael_S Дата: Суббота, 07.06.2014, 00:40 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Joonic, вы не туда макрос поместили. Его надо в модуль листа и без дополнительных SUB.
К сообщению приложен файл: 0214701.xlsm (13.8 Kb) · primer-2.xlsm (14.7 Kb)


Сообщение отредактировал Michael_S - Суббота, 07.06.2014, 00:48
 
Ответить
СообщениеJoonic, вы не туда макрос поместили. Его надо в модуль листа и без дополнительных SUB.

Автор - Michael_S
Дата добавления - 07.06.2014 в 00:40
Joonic Дата: Суббота, 07.06.2014, 01:28 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Спасибо огромное))
Блин, как все сложно...только начинаю разбираться...это понял, только не понял, почему у меня галочка не появляется, а вместо нее 1...?
(на первом листе значения С18:С23 по-моему...)
К сообщению приложен файл: primer_3.xlsm (50.3 Kb)


Сообщение отредактировал Joonic - Суббота, 07.06.2014, 01:30
 
Ответить
СообщениеСпасибо огромное))
Блин, как все сложно...только начинаю разбираться...это понял, только не понял, почему у меня галочка не появляется, а вместо нее 1...?
(на первом листе значения С18:С23 по-моему...)

Автор - Joonic
Дата добавления - 07.06.2014 в 01:28
ikki Дата: Суббота, 07.06.2014, 01:41 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
установите для диапазона C18:C23 шрифт Wingdings и формат ячеек [=1]ь;;;
 
Ответить
Сообщениеустановите для диапазона C18:C23 шрифт Wingdings и формат ячеек [=1]ь;;;

Автор - ikki
Дата добавления - 07.06.2014 в 01:41
ikki Дата: Суббота, 07.06.2014, 01:52 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
или так
К сообщению приложен файл: checks.xls (21.5 Kb)
 
Ответить
Сообщениеили так

Автор - ikki
Дата добавления - 07.06.2014 в 01:52
Joonic Дата: Суббота, 07.06.2014, 13:56 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
или так

Тоже вариант...
А как мне сделать, если мне нужно выделить сразу несколько колонок, и в каждой отдельной можно выбрать только одно значение...? Буду очень благораден помощи...
К сообщению приложен файл: checks3.xls (31.5 Kb)
 
Ответить
Сообщение
или так

Тоже вариант...
А как мне сделать, если мне нужно выделить сразу несколько колонок, и в каждой отдельной можно выбрать только одно значение...? Буду очень благораден помощи...

Автор - Joonic
Дата добавления - 07.06.2014 в 13:56
ikki Дата: Суббота, 07.06.2014, 14:05 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
а Вы весь 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]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Суббота, 07.06.2014, 14:05
 
Ответить
Сообщениеа Вы весь 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]

Автор - ikki
Дата добавления - 07.06.2014 в 14:05
Joonic Дата: Воскресенье, 08.06.2014, 18:22 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
а Вы весь VBA решили изучить с помощью форума?

Это было бы идеально)) Шучу, нет просто дипломный проект горит, а на изучение времени вообще нету, нужно найти быстрое решение и его применить..А проект не из сферы ИТ...просто знаю, что есть на свете добрые люди, которые могут помочь...)

Надеюсь последний вопрос, а как делать, если строки объединены? Через запятую не выходит в кавычках вставить...(
Если я уже достал вас своими вопросами, дайте контакты, договоримся об платных консультациях и все...)

Еще такой вопрос, а например сложно сделать так, чтобы в ячейку вставить картинку и при нажатии на нее уже активировалась ячейка и значение ее приравнивалась к 1... ну все те же требования чтобы она была только единственной из ряда активная...ну и красилась цветом или как-то выделялась на фоне других...?
К сообщению приложен файл: checkslast.xlsm (15.2 Kb)


Сообщение отредактировал Joonic - Воскресенье, 08.06.2014, 18:22
 
Ответить
Сообщение
а Вы весь VBA решили изучить с помощью форума?

Это было бы идеально)) Шучу, нет просто дипломный проект горит, а на изучение времени вообще нету, нужно найти быстрое решение и его применить..А проект не из сферы ИТ...просто знаю, что есть на свете добрые люди, которые могут помочь...)

Надеюсь последний вопрос, а как делать, если строки объединены? Через запятую не выходит в кавычках вставить...(
Если я уже достал вас своими вопросами, дайте контакты, договоримся об платных консультациях и все...)

Еще такой вопрос, а например сложно сделать так, чтобы в ячейку вставить картинку и при нажатии на нее уже активировалась ячейка и значение ее приравнивалась к 1... ну все те же требования чтобы она была только единственной из ряда активная...ну и красилась цветом или как-то выделялась на фоне других...?

Автор - Joonic
Дата добавления - 08.06.2014 в 18:22
ikki Дата: Воскресенье, 08.06.2014, 18:27 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
про объединенные ячейки скорее всего не понял, честно говоря.
у вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке?
с разбегу не скажу, думать надо.

сложно сделать так, чтобы в ячейку вставить картинку
не знаю. стараюсь не связываться с картинками. жена ругает :(


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениепро объединенные ячейки скорее всего не понял, честно говоря.
у вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке?
с разбегу не скажу, думать надо.

сложно сделать так, чтобы в ячейку вставить картинку
не знаю. стараюсь не связываться с картинками. жена ругает :(

Автор - ikki
Дата добавления - 08.06.2014 в 18:27
Joonic Дата: Воскресенье, 08.06.2014, 20:20 | Сообщение № 12
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
про объединенные ячейки скорее У вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке?
с разбегу не скажу, думать надо.

Да, все верно.

Столбец 1 и столбец 2 независимы друг от друга. Нужно сделать тоже самое. То есть из столбца 1 можно было выбрать одну из объединенных ячеек: h3 h7 или h12 и также должно быть как и прежде: чтобы появлялась галочка и значение равнялось 1. Остальные оставались равной 0. И также только 1 из вариантов можно было выбрать. И также столбец 2. (пс: столбцов будет потом много, просто чтобы я знал, куда добавлять...а то видите в первый раз код другой же был...)

Если не получится, то придется делать без объединенных ячеек, там вроде бы получается просто пропускать строчки, если пункты идут не подряд в строках...


Сообщение отредактировал Joonic - Воскресенье, 08.06.2014, 20:24
 
Ответить
Сообщение
про объединенные ячейки скорее У вас каждый пункт в списке - в нескольких строчках, и соответствующая галочка - тоже должна быть в объединенной ячейке?
с разбегу не скажу, думать надо.

Да, все верно.

Столбец 1 и столбец 2 независимы друг от друга. Нужно сделать тоже самое. То есть из столбца 1 можно было выбрать одну из объединенных ячеек: h3 h7 или h12 и также должно быть как и прежде: чтобы появлялась галочка и значение равнялось 1. Остальные оставались равной 0. И также только 1 из вариантов можно было выбрать. И также столбец 2. (пс: столбцов будет потом много, просто чтобы я знал, куда добавлять...а то видите в первый раз код другой же был...)

Если не получится, то придется делать без объединенных ячеек, там вроде бы получается просто пропускать строчки, если пункты идут не подряд в строках...

Автор - Joonic
Дата добавления - 08.06.2014 в 20:20
ikki Дата: Воскресенье, 08.06.2014, 21:10 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
как-то так:

[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, икалось много раз.

ппс.
а то видите в первый раз код другой же был...
правда штоле?.. :o
а вы заметили что и таблички разные? :D
К сообщению приложен файл: checks-m.xlsm (17.3 Kb)


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Воскресенье, 08.06.2014, 21:19
 
Ответить
Сообщениекак-то так:

[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, икалось много раз.

ппс.
а то видите в первый раз код другой же был...
правда штоле?.. :o
а вы заметили что и таблички разные? :D

Автор - ikki
Дата добавления - 08.06.2014 в 21:10
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Как выделить ячейку при нажатии (Галочкой) и задать =1 (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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