| 
| 
 | Вопрос # 3 776/ вопрос открыт / | 
 |  Доброго времени суток, уважаемые эксперты!
 Возникла проблема вставить дополнительное условие в данный код.
 
 Основа данного кода это удаление данных, если объект TextBox1 пустой, и ввод данных, если объект имеет значение (основное условие If UserForm1.TextBox1.Text = "" Then).
 Необходимо после Else (это я так думаю) вставить Module2.Change, данный макрос выполняет дополнительное удаление данных, когда происходит ввод данных.
 Перед этим необходимо вставить условие
 
 If CDate(Form_SelectDate.TextBox_Data) > CDate(Form_SelectDate.TextBox_Дата) Then
 с выводом сообщения
 
 If MsgBox("ВНИМАНИЕ" & vbCrLf & vbCrLf & "При вводе данных прихода, на прошедшую дату, Вы изменяете параметры движения ГСМ. Если за " & ComboBox_Month & " месяце производилась инвентаризация, списание, определение процента потерь то эти данные будут полностью удалены." & vbCrLf & "Продолжить ввод данных на выбранную дату?", vbYesNo + vbExclamation, " Информационное сообщение") = vbYes Then
 Если пользователь нажимает кнопку “Да” данного сообщения, то выполняется макрос Module2.Change и код после Else.
 Если пользователь нажимает кнопку “Нет” данного сообщения, то ни чего не происходит.
 Если условие не дает результата “>” то в силу вступает основное условие, то есть выполняется код после Else без сообщения и без Module2.Change.
 К вопросу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки вопроса) Приложение:Переключить в обычный режим          If IsDate(SelectedDate) Then SelectedDate = CStr(DateValue(dt_2))    Unload MeExit SubEnd If     Dim i As Integer    For i = 1 To 444                         .Cells(i, 28) = ""                .Cells(i, 31) = ""                 End With                 UserForm1.Label6.ForeColor = &HFF&                Module2.Change            End If                 Else                     .Cells(i, 3).Value = UserForm1.TextBox1.Text + .Cells(i, 3).Value                .Cells(i, 4).Value = UserForm1.TextBox2.Text + .Cells(i, 4).Value                .Cells(i, 5).Value = VBA.Val(VBA.Replace(UserForm1.TextBox3.Text, ",",
".")) + .Cells(i, 5).Value                .Cells(i, 6).Value = VBA.Val(VBA.Replace(UserForm1.TextBox5.Text, ",",
".")) + .Cells(i, 6).Value                .Cells(i, 7).Value = VBA.Val(VBA.Replace(UserForm1.TextBox6.Text, ",",
".")) + .Cells(i, 7).Value                .Cells(i, 8).Value = UserForm1.TextBox7.Text + .Cells(i, 8).Value                .Cells(i, 9).Value = UserForm1.TextBox8.Text + .Cells(i, 9).Value                .Cells(i, 21).Value = Range("F10").Value                .Cells(i, 22).Value = Range("G10").Value                .Cells(i, 28).Value = Round(([d13] + [d16] + [d19] + [d22]), 0) + .Cells(i,
28).Value                 End With                 UserForm1.Label6.ForeColor = &HC00000        End If    End If    NextEnd If 
|  |   Вопрос задал: resseg (статус: Посетитель)Вопрос отправлен: 15 февраля 2010, 23:20
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 12; последнее сообщение — 17 февраля 2010, 13:36; участников в обсуждении: 2. 
|   | Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 14:09 [#1]:И опять лабораторные по программированию. У тебя слишком мудреный код получился, ты бы прямо попросил, напишите мне прогу которая будет делать то, это и третье
 |  
|   | resseg (статус: Посетитель), 16 февраля 2010, 14:27 [#2]:Какие лабораторные, я самапал… Точнее так.
 
 If a = 1 Then 'Условие для выполнения кода. Public Условие As Integer
 If b= 2 Then'Сообщение Ок не выполнение кода
 Exit Sub
 End If
 If с = 3 Then 'Условие для поиск даты по совпадению, для выполнения основного условия.
 If d = 4 Then 'Основное условие
 If e = 5 Then 'Сообщение Да, Нет
 s = 1
 s = 2
 End If
 Else
 If g = 6 Then 'Дополнительное условие
 If z = 7 Then 'Дополнительное сообщение Да, Нет
 s = 3
 s = 2
 End If
 End If
 End If
 End If
 End If 'Конец выполнение кода. Public Условие As Integer
 
 
 При выполнение g = 6 выполняется z = 7 При выборе Да выполняются операторы s = 3, s = 2, при выборе Нет операторы s = 3, s = 2 не выполняются. Если g = 6 не выполняется, то выполняется только оператор s = 3 на основание условия d = 4
 |  
|   | Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 14:58 [#3]:Зачем тогда было выкладывать прикрепленный файл с непонятным кодом, ты хочешь, что бы за тебя кто-то разобрался в нем??? |  
|   | resseg (статус: Посетитель), 16 февраля 2010, 15:07 [#4]:Это ответ или вопрос на ответ? |  
|   | Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 15:19 [#5]:мой тебе совет, переходи на С++ или delphi или может тебе именно на Basic нужно   |  
|   | resseg (статус: Посетитель), 16 февраля 2010, 15:32 [#6]:Я не профи, я просто задал вопрос, потому что заплутал в алгоритме данного кода, если есть спецы, то помогите разобраться. А иначе, зачем форум? А на данный момент мне нужен VBA , то есть именно сейчас.
 |  
|   | Alexey6522 (статус: 1-ый класс), 16 февраля 2010, 16:06 [#7]:понятное дело, наверно участвуешь в олимпиаде |  
|   | resseg (статус: Посетитель), 16 февраля 2010, 16:25 [#8]:Это имеет значение для данного вопроса? Если да то отвечу. |  
|   | Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 00:13 [#9]:Если да, тогда тебе прямая дорога в раздел, лабы и олимпиады |  
|   | resseg (статус: Посетитель), 17 февраля 2010, 08:04 [#10]:Тогда нет. На данный момент создаю проект для себя.
 В принципе с кодом разобрался.
 Осталось только оператор s=3 оформить в виде процедуры. Но почему то после оформления оператора в Sub оператор выдает ошибку.
 |  
|   | Alexey6522 (статус: 1-ый класс), 17 февраля 2010, 08:16 [#11]:Стоило тогда задавать вопрос? Может нужно было чуточку подумать самому, а не прямиком на форум идти? |  
|   | resseg (статус: Посетитель), 17 февраля 2010, 13:36 [#12]:Странная постановка ответа… |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |