Страницы: 1
RSS
msgbox не задерживается на экране
 
Добрый вечер, форумчане! Подскажите, что сделано не правильно программе msgbox не отображается!
Нужно, что бы при значении больше нуля было одно сообщение, а меньше нуля - другое.
часть Кода

If i3 > 0 Then
MsgBox "" & s & " получил " & s1 & " шт. " & s2 & ", перейдите к вводу следующих данных!"
ElseIf i3 < 0 Then
MsgBox " С " & s3 & " " & s & "списано " & s1 & "шт. инструмента" & s2 & " !"
End If
Изменено: alexeySV - 04.11.2013 01:47:00
 
ЭТА часть кода рабочая.
 
но сообщение пролетает и не отображается! А когда msgbox без  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
 
наверное, всё же s1

а если бы вдобавок к Option Explicit давать ещё и осмысленные имена переменным (в реальных, рабочих кодах крайне рекомендуется, и не обращайте внимания, как мы именуем переменные в примерах на форуме)...
например
Код
sFIO = Worksheets("Выдача и спис. инструмента").[e3] ' ФИО - вместо s
dQuantity = Worksheets("Выдача и спис. инструмента").[i3] ' кол-во - вместо s1
sTool = Worksheets("Выдача и спис. инструмента").[h3] ' название - вместо s2
sProfession = Worksheets("Выдача и спис. инструмента").[f3] ' профессия - вместо s3
то "проблем" было бы ещё меньше  ;)
Изменено: ikki - 04.11.2013 08:08:00
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
alexeySV, i3 - это Вы так про ячейку I3? Или у Вас есть такая переменная? Если разговор про ячейку, то, чтобы не путаться, пишите пока Range("I3")  .
И что должно произойти, если значение равно нулю? Если такого быть не может, то можно исключить вторую проверку:
Код
If [i3] > 0 Then
MsgBox "" & s & " получил " & s1 & " шт. " & s2 & ", перейдите к вводу следующей позиции или выберите таб№ следующего получившего для этой номенклатуры!"
Else
MsgBox " С " & s3 & " " & s & " списано " & s1 & "шт. инструмента или приспособлений c названием " & s2 & " !"
End if

И привыкайте оформлять код тегами.
 
Всем, Спасибо, за советы- сейчас доберусь до компьютера и буду исправляться!
 
Юрий, да -i3 это ячейка у которой к тому же действительно не может быть значения=0.  Я кажется попал в ловушку собственной халатности..
Страницы: 1
Наверх