Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1 2 След.
RSS
Звуковой сигнал при ошибочном вводе данных
 
Всем привет!
Как сделать так, чтобы при появлении в ячейке числа больше, например,чем 20 звучал какой-нибудь устрашающий звук (например злой рок из Моцарта)? Число в ячейке в виде ссылки.
Изменено: Финский летчик - 28 Янв 2013 01:57:01
 
Я записал макрос запуска звукового файла. Теперь нужно записать макрос, который запускает этот макрос при условии, что в ячейке U6 значение больше или равно 15?
Спутал Моцарта с Бетховеном(первые звуки симфонии №5).
Изменено: Финский летчик - 28 Янв 2013 03:42:06
 
Private Sub Worksheet_Calculate()
If [u6] > 15 Then Execute ......дальше не знаю как записать ...должен выполниться макрос2
End Sub
 
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$U$6" And Target >= 15 Then макрос2
End Sub
 
спасибо. Все работает , но только когда ввожу данные непосредственно в ячейку U6. Но в этой ячейке ссылка. и при изменении ничего не происходит.
 
как так?
Цитата
Все работает
Цитата
при изменении ничего не происходит
С Уважением, Даулет!
 
Файл давайте.
 
ячейка U6 ссылается на другую ячейку на другом листе. И если в той другой ячейке данное меняется и больше 15 -ничего не происходит.
если же в ячейку U6 непосредственно ввести значение больше 15, то все работает.
 
Разместите процедуру Private Sub Worksheet_Change(ByVal Target As Range) в "другом листе" и замените адрес U6 на адрес "другой ячейки".
 
Файл очень большой. Тот другой лист скрыт. На ту ячейку тоже идет ссылка.
 
Исходное значение ,которое не должно превышать 15,передается в эксель с измерительного прибора через компорт в текстовом формате , поэтому много ссылок.
 
Работает вот как (как я вначале и пытался сделать):

Private Sub Worksheet_Change(ByVal Target As Range)
If [u6] > 15 Then макрос2
End Sub
Изменено: Финский летчик - 28 Янв 2013 05:01:01
 
Теперь эта музака постоянно включается при переходе на другие ячейки...  :evil:
 
Цитата
Как передать большой файл?
http://disk.yandex.ru/
 
http://yadi.sk/d/6vdBSdd52AH_q
 
На какой лист и в какие ячейки попадают данные  с измерительного прибора?
 
Данные с прибора попадают на лист Kat1 в белые ячейки без заливки(E7:L10).

На листе Лист2 текстовый формат с точкой преобразовывается в числовой формат с запятой. вычисляются всякие средние , максимумы и т.п. для передачи в базу данных.

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

Мне нужно сделать так, что если значение больше 15мА, то звучит предупреждающий сигнал, а если больше 20мА, то звучит сигнал тревоги-т.е. два сигнала. но тут хотябы с одним разобраться...
 
Проверьте.
http://yadi.sk/d/6m6Tf5kA2AIXW
 
проверил. При вводе любого значения в ячейки E7:L10 появляется сообщение "могу выполнить макрос2"

Вернее так-если в какой-либо ячейке из E7:L10 уже есть значение >15, то сообщение появляется при вводе любого значения в другие ячейки. вот если бы сообщение появлялось однократно...
 
Значение в диапазоне E7:L10 не проверяется, в нём перехватывается факт изменения. Проверяется значение в ячейке Cells(6, 21) >= 15 (U6>=15). В файле много формул, какие ячейки влияют на значение в U6 не проверял. Смоделируйте ситуацию когда в ячейке будет значение <15 - сообщение появляться не будет.
 
Вариант: рисуем на листе TextBox (скрываем его), куда считывается ЗНАЧЕНИЕ из контролируемой ячейки. Отслеживаем Change в нашем TextBox и по условию вызываем макрос воспроизведения.
 
А как мне записать кодом такую задачу:

Если значение в ячейке U21больше или равно 15,  то выполнить макрос 2  и  умножить знчение в ячейке U21 на ноль?
 
Код
If  Range("U21").Value>= 15Then
   Call макрос2
   Range("U21").Value =0
End If
 
Код
Sub SuomiPilot()
    If Range("U21") >= 15 Then
        Call Макрос2
        Range("U21") = 0
    End If
End Sub
 
Большое спасибо.
 
Все работает для одной ячейки. Но вот для двух ячеек не получается.
Я записал два макроса.

Sub SuomiPilot()
   If Range("U21") >= 15 Then
       Макрос2
       Range("U21") = 0
   End If
End Sub

Sub SuomiPilot2()
   If Range("U22") >= 15 Then
       Макрос2
       Range("U22") = 0
   End If
End Sub
 
Так не работает ни для ячейки U21 ни для ячейки U22.
 
Должны работать. Но раздельно, по вызову. (макросы по вызову  :) )

Макрос в модуле листа? Если нет, к ссылкам нужно добавить имя листа.

Для решения вопроса не обязательно присылать Ваш огромный файл. Создайте небольшой пример и прикрепите к сообщению.
 
Вот так работает. Я его поместил там где "Выходной текст".


Private Sub Worksheet_Change(ByVal Target As Range)
Dim a100
If Range("U21") >= 15 Then
Макрос2
Range("U21") = 0
End If

If Range("U22") >= 15 Then
Макрос2
Range("U22") = 0
End If

End Sub

Но нужно решить несколько небольших , но важных вопросов. Я создам пример и размещу чуть позже. Очень надеюсь на помощь. спасибо.
 
Dim a100 - объявление переменной, которой нет в вашем коде. Нужно?

Вариант:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("U21").Value >= 15 Or Range("U22").Value >= 15 Then
        Call Макрос2
        Range("U21:U22").Value = 0
    End If
End Sub

Если обнулять ячейки вместе нельзя, заменить строку с обнулением на код:
Код
        If Range("U21").Value >= 15 Then Range("U21").Value = 0
        If Range("U22").Value >= 15 Then Range("U22").Value = 0
 
Цитата
...нужно решить несколько ... вопросов. Я создам пример и размещу чуть позже
Если вопросы связаны между собой только Вашей задачей, их нужно размещать в разных темах.
Страницы: 1 2 След.
Читают тему (гостей: 1)