С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/158: Рейтинг темы: голосов - 158, средняя оценка - 4.87
grim

Организовать связь элемента checkbox (флажок) и ячейки в excel

27.09.2011, 13:25. Показов 30045. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
возникла потребность создать кучу ячеек и чтобы в каждой из них был checkbox который бы устанавливал для этой ячейки значение 0 или 1.
Попробовал сделать - вид-> панели инструментов -> элементы управления - на панельки взял checkbox. Получил этот самый checkbox - как теперь привязать его к ячейке? Взял написал macros
Visual Basic
1
2
3
4
Private Sub CheckBox1_Click()
  Range('U7').Select
  If (ActiveCell.FormulaR1C1 = '=1') Then ActiveCell.FormulaR1C1 = '=0' Else ActiveCell.FormulaR1C1 = '=1'    
End Sub
ну ладно типа пашет.
Но хотелось бы чтобы при перемещении ячейки checkbox перемещался с ней а при копировании создавалась группа checkbox + ячейка и checkbox был завязан на ячейку куда мы это скопировали.

Видел эксель файл в котором это частично реализовано - но такое впечатление что используется какой-то другой checkbox - ибо у него в свойствах в формате объекта управления есть дополнительная закладка - связь с ячейкой (в моем чекбоксе такого нет). При копировании ячейки он копируется и при перетаскивании перетаскивается.

При этом если выделить сам чекбокс то у меня в строке формулы написано =ВНЕДРИТЬ('Forms.CheckBox.1';'') а там просто $B$6 (адрес ячейки с которой связан). И ессно при копировании он так и остается связан с присловутой $B$6 а надо бы чтобы был связан с новой ячейкой.

Пожалуйста напишите кто что знает по этой проблеме, помогите ламеру.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.09.2011, 13:25
Ответы с готовыми решениями:

Связь ячейки Excel с doc-файлом
Такая проблема: как можно связать содержание ячейки Excel средствами VBA, с документом Word? Конкретно есть документ ворда с, например, 6...

Обратная связь с формой из ячейки в Excel
Люди добрые помогите, немогу решить проблему: нужно чтобы при двойном щелчке на ячейке вызывалась какая либо форма, если конкретно то мне...

В Word завязать флажок (CheckBox) с текстовым полем (textBox)
Всем доброго времени суток. Задача следующая: необходимо в Word завязать флажок(CheckBox) с текстовым полем(textBox) так, чтобы при...

8
22 / 5 / 1
Регистрация: 05.09.2010
Сообщений: 370
27.09.2011, 13:52
вид-> панели инструментов -> ФОРМЫ- на панельки взять checkbox
в свойствах найдешь закладку ЭЛЕМЕНТ УПРАВЛЕНИЯ. Думаю это то, о чём Вы спрашиваете...
0
grim
27.09.2011, 14:38
а чтобы при копировании автоматически все менялось никак нельзя сделать?
alex_g
27.09.2011, 14:58
Копирование отменяется (мое мнение). Придётся для каждой ячейки создать флажок и завязывать на связь с ячейкой.
90 / 37 / 14
Регистрация: 03.11.2010
Сообщений: 429
27.09.2011, 23:42
Посмотри пример http://dimit.pochta.ru/excel/check_cell.zip
Может быть подойдёт.
0
grim
28.09.2011, 13:50
спасибо уже сам сделал такой макрос
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub tmp1()
'
    Dim cel_adr As String
    ActiveSheet.CheckBoxes.Add(ActiveCell.Left, ActiveCell.Top, 25.5, 17.25).Select
   cell_adr = ActiveCell.Address
   ActiveCell.Font.ColorIndex = 2
    With Selection
        .Value = xlOff
        .Characters.Text = ''
        .LinkedCell = cell_adr
        .Display3DShading = False
    End With
End Sub
grim
28.09.2011, 16:13
И последнее - если кому будет актуально вдруг
в итоге я написал макрос который заполняет чекбоксами и привязывает их к соотвествующим ячейкам все ячейки содержащие заглавную 'O' (ну просто файл такой изначально был) в селектед арии.
grim
28.09.2011, 16:14
собственно вот она - забыл в предыдущей мессаге
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Sub CreateLinkedCheckBox()
 
    Dim cel_adr As String
    
    ActiveSheet.CheckBoxes.Add(ActiveCell.Left + 2, ActiveCell.Top, 25.5, 17.25).Select
   
   cell_adr = ActiveCell.Address
   
   ActiveCell.Font.ColorIndex = 2
   
   Selection.ShapeRange.LockAspectRatio = msoTrue
   
   
    With Selection
        .Value = xlOff
        .Characters.Text = ''
        .LinkedCell = cell_adr
        .Display3DShading = False
    End With
 
End Sub
Sub Fill_Marked_with_CheckBoxes()
 
Dim counter As Long
Dim counter2 As Long
 
Dim cel_adr As String
 
counter = 0
counter2 = 0
 
Dim selected_area As Variant
Dim vars As Variant
 
selected_area = Selection
 
For Each vars In Selection.Cells
 
 
counter = counter + 1
If vars.Value = 'O' Then GoTo AddCheckBox
 
Cycle:
 
Next vars
 
MsgBox (counter)
MsgBox (counter2)
 
GoTo EndSub
 
AddCheckBox:
 
    counter2 = counter2 + 1
    
    vars.Activate
    
    ActiveSheet.CheckBoxes.Add(ActiveCell.Left + 2, ActiveCell.Top, 25, 17).Select
   
   cell_adr = ActiveCell.Address
   
   ActiveCell.Font.ColorIndex = 2
   Selection.ShapeRange.LockAspectRatio = msoTrue
    With Selection
        .Value = xlOff
        .Characters.Text = ''
        .LinkedCell = cell_adr
        .Display3DShading = False
    End With
 
GoTo Cycle
 
EndSub:
 
End Sub
4 / 4 / 2
Регистрация: 06.03.2011
Сообщений: 151
28.09.2011, 19:13
Признаюсь: код последнего сообщения не читал, только оценил длину, да подсознательно подсчитал бросившиеся в глаза GoTo.
Если нужно всего лишь менять содержимое ячейки с '0' на '1' и обратно, то ведь достаточно четырёх инструкций в Worksheet_SelectionChange. Ну и ещё пару, чтобы это работало только для нужных ячеек.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.09.2011, 19:13
Помогаю со студенческими работами здесь

Как организовать группу Checkbox(как ячейки камеры)?
Есть вопрос по программированию VS 2005 на языке C#. В общем я пишу программу для КПК мне надо нарисовать камеру с 6х6, и сделать так...

CheckBox, сбросить флажок
Подскажите, пожалуйста, как сбросить флажок с помощью кнопки, если отменяю сброс флажка после его установки. Так, как есть сейчас,...

MessageBox (Yes/No) и флажок checkBox
Всем привет! Просьба помочь в следующем вопросе: Как вывести подтверждающий MessageBox (Yes/No) для снятия флажка в checkBox. (С#...

Как программно поставить флажок в checkBox?
Как программно поставить флажок в checkBox?

Как в отчете Access центровать флажок ячейки логического типа?
Как в отчете Access центровать флажок ячейки логического типа? То есть, что бы заначек флажка, был по центру?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru