Показать MsgBox, если он содержит определенное значение в строке, а затем очистить ячейку

У меня есть раскрывающееся меню в ячейке C11 для выбора валютных пар (снимок экрана ниже). Я хочу написать макрос, который генерирует MsgBox, когда пользователь выбирает одну из 7 японских пар. Предпочтительно, мне нужен код, который проверяет, содержит ли ячейка значение «JPY», тогда в окне сообщения должно быть указано:

«Вы выбрали крест с японской иеной, вы хотите продолжить?»

Затем я хочу, чтобы пользователь мог:

  • нажмите «Да», и окно сообщения закроется.
  • Нажмите «Нет», и окно сообщения закроется, а ячейка C11 будет очищена.

Спасибо.

введите описание изображения здесь


person Hell0W0rld    schedule 12.05.2020    source источник
comment
Изучите событие Worksheet.Change.   -  person BigBen    schedule 12.05.2020


Ответы (1)


Попробуйте поместить следующее на листе, где находится раскрывающийся список

Private Sub Worksheet_Change(ByVal Target As Range)

Dim ans As VbMsgBoxResult

If Not Intersect(Target, Range("C11")) Is Nothing Then
    If InStr(Target, "JPY") Then
        ans = MsgBox("You have selected a Japanese Yen cross, do you want to continue?", vbYesNo)

        If ans = vbNo Then
            Application.EnableEvents = False
                Target.Clear
            Application.EnableEvents = True
        End If
    End If
End If

End Sub
person urdearboy    schedule 12.05.2020