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

Вход

Регистрация

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

 

= Мир MS Excel/Вывод результатов программы на лист Excel - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод результатов программы на лист Excel (Макросы/Sub)
Вывод результатов программы на лист Excel
Lebron300 Дата: Суббота, 20.12.2014, 14:57 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Программа ставит диагноз пациенту.. нужно чтобы результаты выводились на 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]
К сообщению приложен файл: VBA.xls (64.5 Kb)


Сообщение отредактировал Lebron300 - Воскресенье, 21.12.2014, 10:17
 
Ответить
СообщениеПрограмма ставит диагноз пациенту.. нужно чтобы результаты выводились на 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]

Автор - Lebron300
Дата добавления - 20.12.2014 в 14:57
ikki Дата: Суббота, 20.12.2014, 17:25 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
и вам здравствуйтепожалуйста.
а для "нужно" другой раздел есть.
Работа/Фриланс


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеи вам здравствуйтепожалуйста.
а для "нужно" другой раздел есть.
Работа/Фриланс

Автор - ikki
Дата добавления - 20.12.2014 в 17:25
Lebron300 Дата: Понедельник, 22.12.2014, 09:54 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Ну хоть намекните кто нибудь, как сделать?
 
Ответить
СообщениеНу хоть намекните кто нибудь, как сделать?

Автор - Lebron300
Дата добавления - 22.12.2014 в 09:54
Pelena Дата: Понедельник, 22.12.2014, 10:17 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19197
Репутация: 4423 ±
Замечаний: ±

Excel 365 & Mac Excel
[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
[/vba]


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение[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
[/vba]

Автор - Pelena
Дата добавления - 22.12.2014 в 10:17
Lebron300 Дата: Понедельник, 22.12.2014, 13:30 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 40% ±

Excel 2003
Pelena, огромное спасибо... какой раз уже выручаешь. Еще 1 вопросик: можно ли сделать, чтобы при нажатии сразу всем пациентам диазноз ставила программа и выводила на лист?
[moder]Нажатии всем пациентам куда?
В любом случае - это новый вопрос.
Эта тема закрыта, а Вам замечание за нарушение п. 5.q Правил форума.


Сообщение отредактировал _Boroda_ - Понедельник, 22.12.2014, 14:15
 
Ответить
СообщениеPelena, огромное спасибо... какой раз уже выручаешь. Еще 1 вопросик: можно ли сделать, чтобы при нажатии сразу всем пациентам диазноз ставила программа и выводила на лист?
[moder]Нажатии всем пациентам куда?
В любом случае - это новый вопрос.
Эта тема закрыта, а Вам замечание за нарушение п. 5.q Правил форума.

Автор - Lebron300
Дата добавления - 22.12.2014 в 13:30
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Вывод результатов программы на лист Excel (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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