Программа ставит диагноз пациенту.. нужно чтобы результаты выводились на 2 лист в столбик "Диагноз" по нажатию кнопки "Вывести диагноз на лист". [vba]
Код
Dim NORM As Range, R, T Set NORM = Range("НОРМА") For R = 1 To 7 Debug.Print Controls("TextBox" & R).Text T = CDbl(Replace(Controls("TextBox" & R).Text, ".", ","))
If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox2.Text) < 8 Then st = "Легкая степень тяжести." ElseIf Val(TextBox2.Text) > 14 Then st = "Тяжелый случай." Else st = "Средняя степень тяжести." End If End If If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox5.Text) <= 3 Then st = st & " " & "1 тип" ElseIf Val(TextBox5.Text) > 3 Then st = st & " " & "2 тип" End If MsgBox "Пациент болен. Сахарный диабет!" & vbLf & st, 64, NORM(R, 1) Exit Sub End If Next R MsgBox "Пациент здоров!", 64, "" End Sub
Private Sub UserForm_Initialize() ComboBox1.List = Worksheets(2).Range("A2", Worksheets(2).Cells(Rows.Count, "A").End(xlUp)).Value End Sub Private Sub ComboBox1_Change() With Лист2 TextBox1 = .Cells(ComboBox1.ListIndex + 2, 2) TextBox2 = .Cells(ComboBox1.ListIndex + 2, 3) TextBox3 = .Cells(ComboBox1.ListIndex + 2, 4) TextBox4 = .Cells(ComboBox1.ListIndex + 2, 5) TextBox5 = .Cells(ComboBox1.ListIndex + 2, 6) TextBox6 = .Cells(ComboBox1.ListIndex + 2, 7) TextBox7 = .Cells(ComboBox1.ListIndex + 2, 8) End With End Sub Private Sub CommandButton1_Click() For Each Control In Me.Controls On Error Resume Next Control.Value = "" On Error GoTo 0 Next End Sub ' 'Процедура закрытия диалогового окна ' Private Sub CommandButton3_Click() UserForm2.Hide End Sub Private Sub CommandButton4_Click() 'Кнопка ДИАГНОЗ If ComboBox1.Text = "" Then MsgBox "Пациент не выбран", vbCritical, "Ошибка" Else MsgBox "Производим обработку данных пациента " & _ ComboBox1.Text, vbExclamation, "Пример" End If End Sub
Private Sub UserForm2_Initialize() ComboBox1.RowSource = Лист2.Range("a1").CurrentRegion.Columns(1).Address End Sub
[/vba]
Программа ставит диагноз пациенту.. нужно чтобы результаты выводились на 2 лист в столбик "Диагноз" по нажатию кнопки "Вывести диагноз на лист". [vba]
Код
Dim NORM As Range, R, T Set NORM = Range("НОРМА") For R = 1 To 7 Debug.Print Controls("TextBox" & R).Text T = CDbl(Replace(Controls("TextBox" & R).Text, ".", ","))
If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox2.Text) < 8 Then st = "Легкая степень тяжести." ElseIf Val(TextBox2.Text) > 14 Then st = "Тяжелый случай." Else st = "Средняя степень тяжести." End If End If If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox5.Text) <= 3 Then st = st & " " & "1 тип" ElseIf Val(TextBox5.Text) > 3 Then st = st & " " & "2 тип" End If MsgBox "Пациент болен. Сахарный диабет!" & vbLf & st, 64, NORM(R, 1) Exit Sub End If Next R MsgBox "Пациент здоров!", 64, "" End Sub
Private Sub UserForm_Initialize() ComboBox1.List = Worksheets(2).Range("A2", Worksheets(2).Cells(Rows.Count, "A").End(xlUp)).Value End Sub Private Sub ComboBox1_Change() With Лист2 TextBox1 = .Cells(ComboBox1.ListIndex + 2, 2) TextBox2 = .Cells(ComboBox1.ListIndex + 2, 3) TextBox3 = .Cells(ComboBox1.ListIndex + 2, 4) TextBox4 = .Cells(ComboBox1.ListIndex + 2, 5) TextBox5 = .Cells(ComboBox1.ListIndex + 2, 6) TextBox6 = .Cells(ComboBox1.ListIndex + 2, 7) TextBox7 = .Cells(ComboBox1.ListIndex + 2, 8) End With End Sub Private Sub CommandButton1_Click() For Each Control In Me.Controls On Error Resume Next Control.Value = "" On Error GoTo 0 Next End Sub ' 'Процедура закрытия диалогового окна ' Private Sub CommandButton3_Click() UserForm2.Hide End Sub Private Sub CommandButton4_Click() 'Кнопка ДИАГНОЗ If ComboBox1.Text = "" Then MsgBox "Пациент не выбран", vbCritical, "Ошибка" Else MsgBox "Производим обработку данных пациента " & _ ComboBox1.Text, vbExclamation, "Пример" End If End Sub
Private Sub UserForm2_Initialize() ComboBox1.RowSource = Лист2.Range("a1").CurrentRegion.Columns(1).Address End Sub
Private Sub CommandButton5_Click() Dim NORM As Range, R, T Set NORM = Range("НОРМА") For R = 1 To 7 Debug.Print Controls("TextBox" & R).Text T = CDbl(Replace(Controls("TextBox" & R).Text, ".", ","))
If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox2.Text) < 8 Then st = "Легкая степень тяжести." ElseIf Val(TextBox2.Text) > 14 Then st = "Тяжелый случай." Else st = "Средняя степень тяжести." End If End If If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox5.Text) <= 3 Then st = st & " " & "1 тип" ElseIf Val(TextBox5.Text) > 3 Then st = st & " " & "2 тип" End If Лист2.Cells(ComboBox1.ListIndex + 2, 9) = "Пациент болен. Сахарный диабет!" & vbLf & st Exit Sub End If Next R Лист2.Cells(ComboBox1.ListIndex + 2, 9) = "Пациент здоров!" End Sub
[/vba]
[vba]
Код
Private Sub CommandButton5_Click() Dim NORM As Range, R, T Set NORM = Range("НОРМА") For R = 1 To 7 Debug.Print Controls("TextBox" & R).Text T = CDbl(Replace(Controls("TextBox" & R).Text, ".", ","))
If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox2.Text) < 8 Then st = "Легкая степень тяжести." ElseIf Val(TextBox2.Text) > 14 Then st = "Тяжелый случай." Else st = "Средняя степень тяжести." End If End If If T < NORM(R, 2) Or T > NORM(R, 3) Then If Val(TextBox5.Text) <= 3 Then st = st & " " & "1 тип" ElseIf Val(TextBox5.Text) > 3 Then st = st & " " & "2 тип" End If Лист2.Cells(ComboBox1.ListIndex + 2, 9) = "Пациент болен. Сахарный диабет!" & vbLf & st Exit Sub End If Next R Лист2.Cells(ComboBox1.ListIndex + 2, 9) = "Пациент здоров!" End Sub
Pelena, огромное спасибо... какой раз уже выручаешь. Еще 1 вопросик: можно ли сделать, чтобы при нажатии сразу всем пациентам диазноз ставила программа и выводила на лист? [moder]Нажатии всем пациентам куда? В любом случае - это новый вопрос. Эта тема закрыта, а Вам замечание за нарушение п. 5.q Правил форума.
Pelena, огромное спасибо... какой раз уже выручаешь. Еще 1 вопросик: можно ли сделать, чтобы при нажатии сразу всем пациентам диазноз ставила программа и выводила на лист? [moder]Нажатии всем пациентам куда? В любом случае - это новый вопрос. Эта тема закрыта, а Вам замечание за нарушение п. 5.q Правил форума.Lebron300
Сообщение отредактировал _Boroda_ - Понедельник, 22.12.2014, 14:15