|
Вопрос # 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 Me
- Exit Sub
- End 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
- Next
- End 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]:
Странная постановка ответа…
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|