Добрый вечер, форумчане! Подскажите, что сделано не правильно программе msgbox не отображается! Нужно, что бы при значении больше нуля было одно сообщение, а меньше нуля - другое. часть Кода
If i3 > 0 Then MsgBox "" & s & " получил " & s1 & " шт. " & s2 & ", перейдите к вводу следующих данных!" ElseIf i3 < 0 Then MsgBox " С " & s3 & " " & s & "списано " & s1 & "шт. инструмента" & s2 & " !" End If
Может кто подскажет, как можно обойти ветвление If и ElseIF , ну не работает -хоть ты тресни! Если отдельно Else, то второе сообщение покажет. А или то или другое в зависимости от введенного в ячейку знака - просто пропускает и копирует без показа сообщений! На всякий случай выложу полный код. Private Sub CommandButton1_Click() Dim s, s1, s2, s3 Application.CutCopyMode = False s = Worksheets("Выдача и спис. инструмента").[e3] ' ФИО s1 = Worksheets("Выдача и спис. инструмента").[i3] ' кол-во s2 = Worksheets("Выдача и спис. инструмента").[h3] ' название s3 = Worksheets("Выдача и спис. инструмента").[f3] ' профессия
Worksheets("Учет").Range("A2").EntireRow.Insert Worksheets("Выдача и спис. инструмента").Range("a3:o3").Copy Worksheets("Учет").Range("A2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Sheets("Выдача и спис. инструмента").Activate Application.CutCopyMode = True
If i3 > 0 Then MsgBox "" & s & " получил " & s1 & " шт. " & s2 & ", перейдите к вводу следующей позиции или выберите таб№ следующего получившего для этой номенклатуры!"
ElseIf i3 < 0 Then MsgBox " С " & s3 & " " & s & " списано " & s1 & "шт. инструмента или приспособлений c названием " & s2 & " !"
End If End Sub
Изменено: alexeySV - 04.11.2013 03:39:23(была кодировка в крякозябрах)
Советовал бы вам всегда использовать Option Explicit, тогда бы вы сразу получили сообщение об необъявленных переменных. i3 в If i3 такая необъявленная переменная и по умолчанию 0. Следовательно никакое условие не выполняется. Скорее всего, вы хотели If [I3] > 0
а если бы вдобавок к Option Explicit давать ещё и осмысленные имена переменным (в реальных, рабочих кодах крайне рекомендуется, и не обращайте внимания, как мы именуем переменные в примерах на форуме)... например
Код
sFIO = Worksheets("Выдача и спис. инструмента").[e3] ' ФИО - вместо s
dQuantity = Worksheets("Выдача и спис. инструмента").[i3] ' кол-во - вместо s1
sTool = Worksheets("Выдача и спис. инструмента").[h3] ' название - вместо s2
sProfession = Worksheets("Выдача и спис. инструмента").[f3] ' профессия - вместо s3
alexeySV, i3 - это Вы так про ячейку I3? Или у Вас есть такая переменная? Если разговор про ячейку, то, чтобы не путаться, пишите пока Range("I3") . И что должно произойти, если значение равно нулю? Если такого быть не может, то можно исключить вторую проверку:
Код
If [i3] > 0 Then
MsgBox "" & s & " получил " & s1 & " шт. " & s2 & ", перейдите к вводу следующей позиции или выберите таб№ следующего получившего для этой номенклатуры!"
Else
MsgBox " С " & s3 & " " & s & " списано " & s1 & "шт. инструмента или приспособлений c названием " & s2 & " !"
End if