Страницы: 1
RSS
Код ячейку с формулой не принимает как значение
 
Добрый день.
Посмотрите плиз, где ошибка.
Идея: если в D13 в листе "Request" значение меньше или равно 3, то должно выходить сообщение.
написала:
Код
    If Range("$D$13").Value <= 3 Then
            MsgBox "Are you sure that is enough time to execute your request?!", vbExclamation
    End If
не работает  :(
 
antwta, ну так и не ноль же у Вас там. "" не меньше и тем более не равно 3.
По вопросам из тем форума, личку не читаю.
 
antwta, наверно
Код
If val(Range("$D$13").Value) <= 3 Then
 
Казанский, не получается так (

БМВ, там будет ставится дата. и вот если deadline минус сегодняшняя дата   равно 3 или меньше,
то вызывать сообщение
Изменено: antwta - 10.08.2018 09:27:14
 
показывайте
 
Цитата
antwta написал: не получается так (
Все получается
Код
? Range("$D$13").Value <= 3
False
? val(Range("$D$13").Value) <= 3
True
По вопросам из тем форума, личку не читаю.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Target.Address    
                 .........                     
        Case "$D$12":        
            Call WISHED_DEADLINE_1            
        Case "$D$13":        
            Call WISHED_DEADLINE_2                       
    End Select
End Sub

Private Sub WISHED_DEADLINE_1()
    If Range("$D$12").Value > 0 Then
       
 MsgBox "It will be better if you discuss with us the WISHED DEADLINE 
before send the request. Thank you! ", vbExclamation
    End If
End Sub

Private Sub WISHED_DEADLINE_2()
    If Val(Range("$D$13").Value) <= 3 Then
        MsgBox "5555555 ", vbExclamation
    End If
End Sub
как-то так..
если через play именно его запускать - выдает сообщение
никакую ошибку не выдает... он просто никак не реагирует на заданное условие

а если как задумано, вводить дату в ячейку D12,
то первый  MsgBox "It will be better if you discuss with us the WISHED DEADLINE before send the request. Thank you! " - работает
а второй MsgBox "5555555 ", vbExclamation - нет

Что-то не так делаю :-(
Изменено: antwta - 10.08.2018 12:01:30
 
в глазах рябит,

antwta,  вы уверены, что это нужно делать через VBA , а не через проверку данных? Проще и эффективнее.
По вопросам из тем форума, личку не читаю.
 
никогда Target.address у вас не будет "$D$13"  и не пойдет по пути Case "$D$13":  .У вас там формула и меняется её значение. Зависит она от d12 и d11,  вот изменение и надо контролировать этих ячеек, а сравнивать уже d13, но еще раз все это проверкой данных делается в лучшем виде, хотя судя по всему у вас предупреждение, но не жесткий контроль., тогда ок.

К стати заливка цветом, тоже через условное форматирование. По каждому чиху Worksheet_Change прогонять смысла нет.
Изменено: БМВ - 10.08.2018 10:58:03
По вопросам из тем форума, личку не читаю.
 
vikttur,Sorry,
не поняла.
объясните пжста "на пальцах"
чтоб на будущее знала я
что значит Кнопка <...>  ?
 
Цитата
antwta написал:
а если как задумано, вводить дату в ячейку D12
а вы попробуйте вводить в Д13. может вы удивитесь, но у вас там:
Код
       Case "$D$13":        
            Call WISHED_DEADLINE_2 
 
БМВ,Возможны Вы правы.
никогда не пользовалась Проверкой данных через формулу
в моем случае будет так?
окно "параметры" - Другой - =ЕСЛИ(($D$12-$D$11)<=3;ИСТИНА;ЛОЖЬ)
окно "сообщение об ошибки" - нужный текст

так?
 
VideoAlex,
G13=D12-D11
если G13<=3 - нужно сообщение

Ошиблась адресом. Исправила в своем коде. Безуспешно
Изменено: antwta - 10.08.2018 11:16:51
 
вот когда меняете D12 или D11 тогда и проверяйте G13 и если оно <=3 то
Код
MsgBox "Are you sure that is enough time to execute your request?!", vbExclamation
событие Worksheet_Change не обрабатывает ячейки измененные с помощью формул.
Просто попробуйте написать цифру меньше 4 в D13 и ваше событие сработает

про это вам уже писали в сообщении №9. внимательно читайте
Изменено: VideoAlex - 10.08.2018 11:19:45
 
VideoAlex,
Проверила, работает, Вы правы.
а как подкорректировать, чтобы код работал с формулой, подскажите плиз
 
Цитата
antwta написал:
окно "параметры" - Другой - =ЕСЛИ(($D$12-$D$11)<=3;ИСТИНА;ЛОЖЬ)
нет и достаточно =$D$12-$D$11>3
По вопросам из тем форума, личку не читаю.
 
Код
Private Sub WISHED_DEADLINE_1()
    If Range("$D$12").Value > 0 Then
        If Range("G13").Value <= 3 Then MsgBox "It will be better if you discuss with us the WISHED DEADLINE before send the request. Thank you! " & Chr(13) & Chr(13) & "Are you sure that is enough time to execute your request?!", vbExclamation
        MsgBox "It will be better if you discuss with us the WISHED DEADLINE before send the request. Thank you! ", vbExclamation
    End If
End Sub
Изменено: VideoAlex - 10.08.2018 11:29:01
 
БМВ,
Вот я козаааа....  знаки больше-меньше вечно путаю...
Спасибо!
Работает.
можно использовать и такой вариант
 
VideoAlex,СпасиБо!!!
Страницы: 1
Наверх