Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Зато тут можно на каждую строку свою музыку ставить
Вот кстати да. Я уже подумал об этом. Шутка шуткой, а похоже, что это пригодится )
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Я в 2019 делал.Событие в текстбоксе срабатывает на изменение в связанной ячейке. Если оно осталось прежним - события не будет, mciExecute ("Play C:\tada.wav")не выполнится.
Ура! Спасибо вам большое человеческое! Я-таки сделал. Накопировал этих текстбоксов аж под 30шт, завязал на каждую ячейку в столбце B отдельно. Звук идет, всё норм. В итоге все вышло примерно так:
Скрытый текст
Может, немного колхозно и стоило как-то сделать звук на диапазон этих ячеек, но главное, что задача выполнена.
Преодолел повторное долбление звука на мозг очень просто: добавил 10сек тишины в конце звукового файла. Пока файл проигрывается, его уже ничто не может остановить. Даже если в других ячейках выполнится условие. Будет тишина. Ну а 1 раз в 11 секунд послушать пару раз звук - ничего страшного.
Сразу скажу, что таймер на проверку вопрос не решит, т.к. реакция должна быть на изменение с моей стороны максимально быстрой. А вот когда уже смотришь на таблицу, то без разницы. Так что тишина эффективней таймера.
Режим конструктора в 2003 включается немного мудрено: надо правой кнопкой тыкнуть на панель с пиктограммами и добавить Visual Basic. Затем нажать на треугольную линейку с карандашом. Тогда текстбоксы начинают отзываться на правую кнопку и их можно редактировать.
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
вот первый мой ответ
Ну так изменения нет, а оно срабатывает все равно. Фишка в том, что по DDE данные-то меняются, но от их изменения значение текста не меняется. Однако видимо изменение все равно видится и звук идет заново постоянно.
Цитата
написал:
Где это в 2003 не помню и негде глянуть, но наверное так же где вставляются на лист объекты, и режим конструктора тоже где-то там же включается...
Щас будем копать, спасибо. А вы в каком делали? Может я для редактирования временно его поставлю если что
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Так я и толковал - для минимизации этих текстбоксов нужно свести все эти результаты в одну ячейку.Как вариант предлагал выше ставить формулами единички когда нужно тренькать и считать их сумму, а на эту сумму натравить текстбокс.
Не совсем понял, что имеется в виду. Связывать разные формулы никак нельзя. Треньканье и обсчет нужны по каждой ячейке отдельно, чтоб точно без глюков и ошибок. Не ну можно конечно обсчитывать весь столбец D и тренькать при измении любой ячейки в столбце, я все равно обращу внимание на экран и буду разбираться руками, как и делаю это сейчас. Но по каждой ячейке вполне устраивает, пусть это даже долго и нудно копипастить.
Цитата
написал:
А про прежнее значение я писал в первом ответе!
Вы про 5 сек? Я читал, но это проблему не решает. Если значение горит и не меняется, то каждые 5 сек ведь будет долбить все равно. Ну да ладно.
Цитата
написал:
Править текстбокс нужно в режиме конструктора, привязку к ячейке и видимость править в свойствах
Отлично, сейчас пытаюсь понять, где эта зараза в 2003м excel... Я просто нажимаю правой кнопкой на лист, далее "исходный текст" и там появляется окно с кодом. Но из относящего к делу там только строка ща будет звук и всё.
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Вот Вам текстбокс, его можно скрыть (не прятал чтоб меньше было вопросов).Меняйте 22 на 33 в B2.
Да, звук идет. Подсунул в ваш файл вывод по DDE, значение ловит, бренькает.
Строку с сообщением о звуке удалил, потому что оно парализует работу. Но это единственное, с чем я справился.
Скрытый текст
Но вот с чем не могу справиться, так это с настройками этого самого текстбокса. Я не пойму, где он, как привязан к ячейке и как его убрать. Получается, что мне таких текстбоксов надо на весь столбец от B35 и ниже. Соответственно, размножить не могу. Но в целом основа задачи выполнена.
Воспроизвести звук при появлении определенного значения в ячейке
 
Отчего же, если ТС сам ставит вопрос про DDE? Все в точности, как у меня, по крайней мере, по ссылке №1
Воспроизвести звук при появлении определенного значения в ячейке
 
Вот кстати накопал АБСОЛЮТНО зеркальную проблему. Вроде бы предложена куча решений, щас буду копаться в этом болоте:
https://www.programmersforum.ru/showthread.php?t=125104
Как я понял, у ТС всё в итоге заработало.
Местных прошу оценить предложенные решения

И вот вроде тоже заработало у кого-то:
http://programmersforum.ru/showthread.php?t=42215
Изменено: DimaS_123 - 18.07.2023 18:07:36
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Снова вернулись к началу - ставьте текстбокс на эту одну ячейку и юзайте его события вместо события листа..
Видимо, придется разбираться с нуля с этими вашими боксами...
Цитата
написал:
с каждым новым сообщение хоть кто-то все ближе и ближе к пониманию деталей задачи а вы к результату?как бы не так, сообщения добавляются, а до результата все так же далеко, как в первых сообщениях.вот это настораживает и подсказывает мне "не влезай!"
Пока что только совет про тайский бокс был дан по сути, ну или как его там ))
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
но добиться от вас что конкретно вам нужно - вот это процесс с непредсказуемыми затратами времени. (может несколько часов, может несколько дней, а может несколько недель или месяцев, никому не охота лезть в эту петлю)
так проще некуда - чтобы звук бренькал однократно каждый раз при изменении указанной ячейки (точно так же, как он срабатывает при ручном вводе в поля E)
понятное дело, чтобы можно накопипастить на несколько десятков ячеек самостоятельно + выбирать сам звук, но это очевидно я думаю
то есть то же, что сделал я, только с DDE
и я как писал в 1 посте обязательно office 2003 + winXP/win7
Изменено: DimaS_123 - 18.07.2023 16:50:58
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Да не важно, ну чуть другую логику пропишите в формуле.Понятно что на Worksheet_Change опираться нельзя, можно на пересчёт и текстбокс.
Для меня темный лес. Вот чисто для интереса: сколько будет стоить написать мне такой короткий код? Разумеется, чтобы я смог его экстраполировать на любое количество ячеек.
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
вот эту логику вывести куданить  ещё правее, проставить там 1, внизу сумму, и эту сумму проверять текстбоксом
В успели скачать неверный файл ))) Я перезалил, но вы были быстрее
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
- а говорили так..
все именно так и осталось. просто я написал для упрощения, но теперь залил прям вообще всё
Воспроизвести звук при появлении определенного значения в ячейке
 
Прикладываю файл.
Еще раз суть: в куче пустых рядов сверху идет выгрузка данных по DDE. Далее эти параметры обрабатываются по формулам и вставляются в B35, B36 и далее вниз. В столбце E вводятся вручную параметры, которыми нужно сравнивать столбец B. В столбце D условные формулы, выдающие (в зависимости от результата сравнения) 1 из 2 текстовых значений. Ну далее уже в коде VBA указано на сравнение данного текста и текста из ячеек G с выдачей/невыдачей звука.
Если забивать значения в столбец E руками, то колонка D меняется и звук идет. Если же колонка D меняется из-за изменения данных с DDE, то звука нет.
Описал, как смог.
Изменено: DimaS_123 - 17.07.2023 12:10:26 (залил не тот файл)
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
так вам и ответили (вроде бы)
Так я бы рад понять ответ, но не могу. Да, у меня вывод через DDE-сервер из сторонней программы. По "DDE" найти на форуме что-то вменяемое невозможно, надо сужать поиск. Как - не знаю. Текстбокс для меня темный лес. Просто слово.

Цитата
написал:
А если попробовать так?
Ппоробовал. Compile error: sub or function not defined
Изменено: DimaS_123 - 17.07.2023 10:42:46
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Где там формула?Вам нужно поймать событие, я подсказал как. Раз нет файла - то и всё. но можете конечно нагуглить, и тут на форуме найти - ищите DDE
Я имел в виду представленный мною код. Неужели его нельзя никак допилить?
DDE поискал. Выдает чертову тучу ссылок, ничего толком непонятно.
Про файл не понял. Свой файл скинуть сюда нужно? Так я ж все описал вроде бы.
Изменено: DimaS_123 - 17.07.2023 09:42:29
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Текстбокс - есть такой объект, его можно поставить на лист, связать с ячейкой. И у него есть обработка событий, но только на изменение значения (это про повтор).И его можно сделать невидимым (скрыть).
Почитал. Темный лес для меня... Прям совсем. А с моей формулой ничего сделать нельзя? Немного допилить, скажем?
Воспроизвести звук при появлении определенного значения в ячейке
 
Цитата
написал:
Завязывайте на эту ячейку например текстбокс и обрабатывайте его событие. Но сработает только на изменение, не на повтор.
Простите, но я не понимаю, что это значит, что за текстбокс. Про повтор тоже немного не понял. В ячейке 2 значения: в основном горит одно, мне оно не нужно, но иногда загорается второе, вот его мне и надо. Поскольку данные обновляются ежесекундно, то значение может менятся каждую секунду. Мне надо, чтобы дзынькало при каждом появлении. Повтор звука (зацикливание), если нужное значение длительное время продолжает гореть, не нужен.
Цитата
написал:
А у меня вообще не играет, ошибку выдает : "Указанное устройство не открыто или не опознается интерфейсом MCI"Как исправить? Винда -10
Возможно, дело именно в винде. Я тестил эту штуку на двух компах: WinXP 32bit и Win7 64bit. На обоих звякает отлично, а Win10 и Win11 я не пользуюсь вообще.
Изменено: DimaS_123 - 14.07.2023 14:42:50
Воспроизвести звук при появлении определенного значения в ячейке
 
Возможно, из кода непонятно, но если имеет значение, то используется A4 для ввода сигнального значения A3. Просто я не знал, как написать значения A3 в формуле и записал в отдельных ячейках, после чего их сравнил (A3=A4).
Честно говоря, вообще не понимаю, какое может иметь значение обновление данных и ввод вручную. Неужели есть какая-то разница? Ведь код не обсчитывает ячейки, которые грузятся из внешнего источника (A1). Код не обсчитывает даже напрямую A3. Он просто сравнивает появляющееся в A3 значение с заведомой константой из A4. Какая этой дурной проге разница, есть ли вообще обновление данных?
Изменено: DimaS_123 - 14.07.2023 10:12:06
Воспроизвести звук при появлении определенного значения в ячейке
 
Здравствуйте!
Понадобилось, чтобы автоматически воспроизводился звук при появлении заданного значения в ячейке.
Используется EXCEL 2003. Данные погружаются из внешнего источника в режиме онлайн, меняются ежесекундно.
Смысл такой:
Значение (условно) A1 - подгружаемое и обновляемое онлайн значение из внешнего источника 1 раз в секунду
A2 - задаваемое пользователем вручную
A3 - условная формула, которая сравнивает A1 и A2 и выдает 1 из 2х значений соответственно.
Нужен звук при появлении нужного значения в поле A3.
Перед созданием темы выудил с данного форума и других кучу кодов. Т.к. я вообще не спец, то компоновал и мучался, как мог. Сделал, звук идет, но (!) только если я ввожу в конкретный момент заведомо подставное нужное значение в A2. Тогда появляется нужное значение в A3 и звук дзынькает. Однако если A3 изменяется при проверке данных из внешнего источника, то звука нет. Вот мой код:
Код
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

Private Sub Worksheet_Change(ByVal Target As Range)
  If [A3] <> "" And [A3] = [A4] Then
    mciExecute ("Play C:\tada.wav")
  End If
End Sub
Изменено: DimaS_123 - 14.07.2023 10:10:52
Страницы: 1
Наверх