Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2011, 13:56   #1
NoirSpirit
 
Регистрация: 25.10.2011
Сообщений: 6
По умолчанию Возможно ли использовать CheckBox + ComboBox вместе?

Подскажите пожалуйста пути решения такой вот задачи:
Допустим у меня есть журнал в котором я веду записи о прогульщиках и болеющих.
У меня есть форма в которой CheckBox1 и CheckBox2 с имнеами (.Caption) "Петров" и "Сидиров" соответственно.
Когда кто-то из них отсутствует, то я активирую CheckBox1 или CheckBox2 и напротив них, соответственно, становятся активными ComboBox1 или ComboBox2 в которых можно выбрать причину отсутствия (Болезнь или Прогул).
Есть Таблица Excel. В ячейке А1 написана причина "Болезнь", а в ячейке А2 "Прогул". Нужно чтобы при выборе из ComboBox причин отсутствия в ячейки B1 и B2 вписывались фамилии Петров или Сидиров.
Все что у меня получилось:

Private Sub UserForm_Initialize()
ComboBox1.AddItem "Болезнь"
ComboBox1.AddItem "Прогул"

ComboBox2.AddItem "Болезнь"
ComboBox2.AddItem "Прогул"
End Sub

Private Sub ComboBox1_Change()
UpdateCells
End Sub

Private Sub ComboBox2_Change()
UpdateCells
End Sub

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
ComboBox1.Enabled = True
End If
If CheckBox1.Value = False Then
ComboBox1.Enabled = False
End If
End Sub

Private Sub CheckBox2_Click()
If CheckBox2.Value = True Then
ComboBox2.Enabled = True
End If
If CheckBox2.Value = False Then
ComboBox2.Enabled = False
End If
End Sub

Sub UpdateCells()
If ComboBox1.Value = "Болезнь" Then
*.Range (B1) = CheckBox1.Caption
End If
If ComboBox1.Value = "Прогул" Then
*.Range (B1) = CheckBox1.Caption
End If
If ComboBox2.Value = "Болезнь" Then
*.Range (B2) = CheckBox2.Caption
End If
If ComboBox2.Value = "Прогул" Then
*.Range (B2) = CheckBox2.Caption
End If
End Sub

Если выбираю для Петрова Прогул, а потом Болезнь, то он пишется в обеих ячейках. Не знаю как можно реализовать удаление CheckBox.Caption из одной ячейки, если оно вставляется в другую.
Вариант работы с IIf, как я понял подходит, но только для 2х фамилий, а если их больше, что делать?

Прикрепил картинку формы. Изначально ComboBox-ы неактивны.
Изображения
Тип файла: jpg 1.JPG (4.2 Кб, 101 просмотров)
NoirSpirit вне форума Ответить с цитированием
Старый 31.10.2011, 14:15   #2
NoirSpirit
 
Регистрация: 25.10.2011
Сообщений: 6
По умолчанию

Если вариантов с моим подходом нет, то может есть способ сделать подобное другим способом?
NoirSpirit вне форума Ответить с цитированием
Старый 31.10.2011, 14:20   #3
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Прикрепил картинку формы.
Если бы Вы изначально вместо картинки прикрепили файл, то возможно варианты уже были бы. И может даже не один.
Все таки здесь форум Excel, а не фотошоп...
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 01.11.2011, 10:28   #4
NoirSpirit
 
Регистрация: 25.10.2011
Сообщений: 6
По умолчанию

Не думал, что могу просто кинуть файл и попросить его исправить. Поэтому и написал код текстом.

Спасибо за подсказку. Выкладываю файл:
Вложения
Тип файла: rar List.rar (13.4 Кб, 17 просмотров)
NoirSpirit вне форума Ответить с цитированием
Старый 01.11.2011, 10:59   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
но только для 2х фамилий, а если их больше
"Меня терзают смутные сомнения"......
А если у Вас будет штат 150-200 человек, это что, на каждого по чекбоксу и комбобоксу?
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 01.11.2011, 11:01   #6
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Может я что-то не понял.
Но если это не просто учебный пример, то подход к решению ИМХО неправильный
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 02.11.2011, 16:17   #7
NoirSpirit
 
Регистрация: 25.10.2011
Сообщений: 6
По умолчанию

Я совсем недавно начал изучать программирование VBA. Все чего хочу в данной теме, это получить помощь в нахождении "правильного" подхода или примера. Как я уже писал ранее, для 2-х человек я более-менее сделал форму. А вот как подходить к такому решению, если человек в списке 3 и больше..
NoirSpirit вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CheckBox и ComboBox в StringGrid ZeitGeist7 Общие вопросы Delphi 16 22.04.2012 20:22
Можно ли использовать вместе AntiLogger + фаервол + антивирус WebbMan Безопасность, Шифрование 4 06.07.2011 19:33
Как правильно использовать ComboBox Pirotexnik Общие вопросы Delphi 6 26.03.2009 23:30
Как использовать CheckBox при работе с БД Spy БД в Delphi 1 18.12.2008 14:43
возможно ли выводить данные из полей типа Edit, ComboBox, ... и отчетах Rave ГОСЕАН БД в Delphi 2 05.03.2008 13:28