|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.08.2012, 13:25 | #1 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Отражение в Textbox значения по условию в Combobox
Добрый день, уважаемые форумчане!
Ваяю дальше юзерформу для заполнения\редактирования таблицы. По выбору номера палаты в Combobox необходимо, чтобы в текстбоксах появлялись значения из таблицы. В примере сделал для Textbox4, вроде присвоил правильно, должна отображаться фамилия первого пациента первой палаты, но "Иванов" не отображается. Что там я наваял в коде не так? Таблица по строкам постоянная, может расширяться только по столбцам. Далее, раз пациентов в палате несколько, то вывод значений в текстбоксы оформить пакетами (Case 1, 2, 3)? И еще, в связи с тем, что пациентов может быть либо 2, либо 3, то для палат где 2 пациента ввести запрет на ввод в текстбоксы для 3-го пациента значений, ну и естественно редактирования. Где-то я это видел. Заранее спасибо! |
11.08.2012, 16:00 | #2 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Вроде сам разобрался. В коде ComboBox1_Change вместо
If sh.Cells(i, 3) = UserForm1.ComboBox1 And sh.Cells(i, 5) = 1 Then надо If sh.Cells(i, 3) <> UserForm1.ComboBox1 And sh.Cells(i, 5) <> 1 Then Недосмотрел. Вот теперь оформить по всем текстбоксам. Думаю, сам сделаю. А вот по поводу запрета вывода значения если нету третьего пациента - вопрос в силе. Если кто чего подскажет буду благодарен. Последний раз редактировалось strannick; 11.08.2012 в 16:05. |
11.08.2012, 16:14 | #3 |
Участник клуба
Регистрация: 02.05.2010
Сообщений: 1,390
|
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728 |
11.08.2012, 16:59 | #4 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Такой вопрос уже задавали. Отвечал. Копию ответа отправил в личку.
|
11.08.2012, 17:45 | #5 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Рано я обрадовался. При вот таком коде в текстбоксы для фамилий выводит начиная со второй, а не с первой.
Private Sub ComboBox1_Change() Dim sh As Worksheet Set sh = Sheets("Лист1") For i = 2 To 21 If sh.Cells(i, 2).Value <> UserForm2.ComboBox1.Value Then If sh.Cells(i, 3).Value <> 1 Then UserForm2.TextBox4.Text = sh.Cells(i, 4) UserForm2.TextBox16.Text = sh.Cells(i + 1, 4) UserForm2.TextBox29.Text = sh.Cells(i + 2, 4) Exit For End If End If Next i End Sub То есть в текстбокс для отображении фамилии первого пациента выводит фамилию второго. Для второго - фамилию третьего. Чего все-таки не так? |
14.08.2012, 10:41 | #6 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Все, разобрался. Вот код если кому надо:
Private Sub ComboBox1_Change() Dim sh As Worksheet Set sh = Sheets("Лист1") For i = 2 To 21 'полностью рабочий блок If ComboBox1.Text = sh.Cells(i, 2).Value And sh.Cells(i + 2, 3).Value = 3 Then TextBox4 = sh.Cells(i, 4).Value TextBox16 = sh.Cells(i + 1, 4).Value TextBox29 = sh.Cells(i + 2, 4).Value Exit For ElseIf ComboBox1.Text = sh.Cells(i, 2).Value And sh.Cells(i + 2, 3).Value <> 3 Then TextBox4 = sh.Cells(i, 4).Value TextBox16 = sh.Cells(i + 1, 4).Value TextBox29 = "" Exit For End If Next End Sub Private Sub CommandButton1_Click() 'Добавить строки Application.ScreenUpdating = False Dim iLastRow As Long Dim sh As Worksheet Set sh = Sheets("Лист1") If TextBox4 = "" Then MsgBox "Не введена фамилия", vbCritical, "Ошибка": Exit Sub For i = 2 To 21 If ComboBox1.Text = sh.Cells(i, 2).Value And sh.Cells(i, 3).Value = 1 Then sh.Cells(i, 4) = TextBox4 Exit For End If Application.ScreenUpdating = True Next MsgBox ("Информация добавлена") 'Hide End Sub Private Sub CommandButton4_Click() 'Очистить информацию Application.ScreenUpdating = False Dim sh As Worksheet Set sh = Sheets("Лист1") For i = 2 To 21 If ComboBox1.Text = sh.Cells(i, 2).Value And sh.Cells(i, 3).Value = 1 Then sh.Cells(i, 4).Clear TextBox4 = "" Exit For End If Application.ScreenUpdating = True Next MsgBox ("Информация удалена") 'Hide End Sub Отображение информации из таблицы, вставка информации в таблицу, очистка информации в таблице. Сделано для одного варианта. Если для всех, то надо добавлять. Думаю, разберетесь. Остался вопрос по блокировке ввода информации по третьему пациенту, если в палате только 2. Надо поискать вариант блокировки кнопки "Добавить..." |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
combobox и textbox | tokdmi | Microsoft Office Excel | 1 | 16.11.2011 21:38 |
combobox & textbox | Mcduff | Помощь студентам | 0 | 31.10.2011 14:10 |
Combobox и textbox как сделать? | Lorgan | Microsoft Office Excel | 9 | 25.05.2011 03:39 |
VBA,Excel, Создание аналогичных Textbox, Combobox | diikand | Помощь студентам | 0 | 05.04.2010 21:37 |
Проблема с Combobox и TextBox | ARud | Microsoft Office Excel | 4 | 08.02.2010 17:54 |