Страницы: 1
RSS
Появление сообщения MsgBox только при y > y1
 
Опять я.)) Вот подредактировал свой "Макрос". Теперь что-то понять не могу, почему не правильно выполняется функция:
Код
If y > y1 Then

Необходимо, чтобы при y > y1 выскакивал "MsgBox", а "MsgBox" выскакивает всегда. Уже всю голову сломал, но ничего в голову не приходит. Помогите пожалуйста. Вот весь код:
Код
Public itog

Sub Кнопка2_Щелчок()
    With Sheets("Игрушки")
        x = InputBox("Введите штрих-код", "Поиск штрих-кода")
        If StrPtr(x) = 0 Then End
        x = "*" & x & "*"
        Dim cell As Range
        Set cell = .Columns(3).Find(What:=x, LookIn:=xlValues, LookAt:=xlWhole)
         
        If cell Is Nothing Then
            MsgBox "Штрих-код не найден", vbOKOnly, "Предупреждение"
            Exit Sub
        Else
            y1 = cell.Offset(0, 2) - cell.Offset(0, 10)
            y = InputBox(cell.Offset(0, 1) & vbCrLf & "Введите количество товара" & vbCrLf & "Осталось: " & y1 & " шт.", "Количество товара")
                If y > y1 Then
                MsgBox "Вы указали не верное количество товара" & vbCrLf & "В наличии осталось: " & y1 & " шт." & vbCrLf & "Вы указали: " & y & " шт.", vbOKOnly, "Предупреждение"
                End
                End If
            If StrPtr(y) = 0 Then
                End
            End If
            Z = InputBox("Введите цену товара" & vbCrLf & "Закупочная цена: " & Format(cell.Offset(0, 6), "#,##0.00") & " руб." & vbCrLf & "Цена: " & Format(cell.Offset(0, 7), "#,##0.00") & " руб.", "Цена товара")
            If StrPtr(Z) = 0 Then
                End
            End If
        End If
        
        Dim yy
        yy = MsgBox("Данные введены верно?" & vbCrLf & cell.Offset(0, 1) & vbCrLf & "Колличество: " & y & " шт." & vbCrLf & "Цена: " & Z & " руб.", vbYesNo, "Подтверждение")
        If yy = 6 Then
            cell.Offset(0, 10) = cell.Offset(0, 10) + CDbl(y)
            cell.Offset(0, 9) = cell.Offset(0, 9) + CDbl(Z)
            itog = itog + CDbl(Z)
        Else
            MsgBox "Покупка отменена", vbOKOnly
            End
        End If
        
        If cell.Offset(0, 10) = cell.Offset(0, 2) Then
            With Union(cell.Offset(0, 1), cell.Offset(0, 2)).Interior
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
            .PatternTintAndShade = 0
            End With
        End If
               
        Dim xx
        xx = MsgBox("Необходимо найти еще один штрих-код?", vbYesNo, "Поиск штрих-кода")
        If xx = 6 Then
            Кнопка2_Щелчок
        Else
            MsgBox "Общая сумма " & itog & " руб.", vbOKOnly
        End If
                
    End With
End Sub
Заранее спасибо.
Изменено: Zelen35 - 23.10.2019 01:16:12
 
Цитата
Zelen35 написал:
не правильно выполняется функция:
как проявляется это "неправильно"?
Соблюдение правил форума не освобождает от модераторского произвола
 
buchlotnik, подредактировал свой вопрос. Забыл это написать. Необходимо, чтобы при y > y1 выскакивал "MsgBox", а "MsgBox" выскакивает всегда.
 
Вот файл.
 
Думаю
Код
If CInt(y) > y1 Then 
решит проблему  :D
Соблюдение правил форума не освобождает от модераторского произвола
 
Ну или пора уже начинать задавать тип переменным!
 
Zelen35,
Цитата
Hugo: задавать тип переменным
и использовать Application.InputBox с указанием типа данных
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
buchlotnik, спасибо большое. Все работает.
Страницы: 1
Наверх