2015-07-08 2 views
0

Мне нужно создать код, чтобы дать мне всплывающее сообщение, если значение ячейки (Цена) больше, чем другая ячейка (Target). Если PRICE> TARGET, то появится окно (в идеале со звуком).Message box pop up

Кроме того, если я ударил нормально мне нужен регистра «истинный» в другую клетку или если я ударил отменить вставки в ячейку FALSE

Моей ПЕРВАЯ УВА поэтому, пожалуйста, показать некоторое понимание , Заранее большое спасибо.

Private Sub CommandButton1_Click() 

Sub userinput() 

Dim ireply As Integer 

If Range("C6").Value > Range("E6").Value Then 

ireply = MsgBox(prompt:="Price" & Range("F6").Value & " Reached target. Stop tracking ?", Buttons:=vbYesNoCancel, Title:="Tracking") 

If ireply = vbYes Then 

Range("B6").Value = "TRUE" 

ElseIf ireply = vbNo Then 

Range("B6").Value = "FALSE" 

End Ifs 

If Range("C7").Value > Range("E7") Then 

End If 

If Range("C8").Value > Range("E8") Then 

End If 

Exit Sub 

End Sub 
+0

у вас есть ' End Ifs', и это «End If» – Hearner

+0

ваш «If Range» («C7»). Значение> Диапазон («E7») Затем Конец Если 'абсолютно ничего нет, потому что вы закрываете оператор' if' вместо закрывая ваш первый 'if' – Hearner

+1

@Hearner: Я думаю, что ссылка на строки 7 и 8 должна показать, что он хочет, чтобы это работало над каждой строкой, см. ответ за несколько секунд! ;) – R3uK

ответ

0

Чтобы сделать это возможным непосредственно при вводе данных в Excel, вам нужно поместить это в модуль листа листа, который вы хотите, чтобы работать на:

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim iReply As Integer 

If Target.Count > 1 Then Exit Sub 

If Application.Intersect(Target, Columns(3)) Is Nothing Then 
Else 
    If Range("C" & Target.Row).Value > Range("E" & Target.Row).Value Then 
     Beep 
     iReply = MsgBox("Price" & Range("F" & Target.Row).Value & " Reached target. Stop tracking ?", vbOKCancel + vbCritical, "Tracking") 
     If iReply <> vbCancel Then 
      Range("B" & Target.Row).Value = "TRUE" 
     Else 
      Range("B" & Target.Row).Value = "FALSE" 
     End If 
    Else 
    End If 
End If 

End Sub 
+0

Благодарим за ваши быстрые ответы. – NINI

+0

Private Sub CommandButton1_Click() 'Рассчитать рабочий лист Application.Calculate Dim ireply As Integer ' Выполнить тест Если Range ("С7"). Value> Range ("Е7"). Value Тогда «Спросите меня, нужно ли отслеживать Excel и назначать ДА или Нет ireply = MsgBox (подсказка: =« Безопасность »и диапазон (« F7 »). Значение &« Достигнутая цель: остановить отслеживание? », Кнопки: = vbYesNoCancel, Название: = "Отслеживание") Звуковой сигнал Конец Если Если ireply = vbYes Тогда Range ("B7"). Value = "TRUE" ElseIf ireply = vbNo Тогда Range ("B7"). Value = "FALSE" End If – NINI

+0

Что это код для? Помогла ли моя проблема? (вы видели, где его разместить?) – R3uK