Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Звук при необходимом числе - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Звук при необходимом числе
bmv98rus Дата: Воскресенье, 17.12.2017, 19:54 | Сообщение № 21
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4125
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
ну слава богу

[vba]
Код
Dim Beep(1 To 2000 / 5) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To UBound(Beep)
        If Range("AX" & I * 5) > 5 Then
        ' или
        'If Cells(I * 5, 50) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

Только я расчитывал на то , что ранее введенные данные могут меняться, если нет, то незачем лишних циклов, нужно по изменению работать.


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 17.12.2017, 19:57
 
Ответить
Сообщениену слава богу

[vba]
Код
Dim Beep(1 To 2000 / 5) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To UBound(Beep)
        If Range("AX" & I * 5) > 5 Then
        ' или
        'If Cells(I * 5, 50) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

Только я расчитывал на то , что ранее введенные данные могут меняться, если нет, то незачем лишних циклов, нужно по изменению работать.

Автор - bmv98rus
Дата добавления - 17.12.2017 в 19:54
stalber Дата: Воскресенье, 17.12.2017, 20:04 | Сообщение № 22
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

Excel 2021
bmv98rus и Karataev огромное вам спасибо)) + поставил.

Единственное в обоих кодах, когда вводишь значения в пустые ячейки, начинаешь заполнять таблицу, при каждом вводе выскакивает



Сообщение отредактировал awaddwaawddw - Воскресенье, 17.12.2017, 20:05
 
Ответить
Сообщениеbmv98rus и Karataev огромное вам спасибо)) + поставил.

Единственное в обоих кодах, когда вводишь значения в пустые ячейки, начинаешь заполнять таблицу, при каждом вводе выскакивает


Автор - stalber
Дата добавления - 17.12.2017 в 20:04
bmv98rus Дата: Воскресенье, 17.12.2017, 20:25 | Сообщение № 23
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4125
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Не могу воспроизвести, но попробуйте так
[vba]
Код
Dim Beep(1 To 2000 / 5) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To UBound(Beep)
        If IsNumeric(Range("AX" & I * 5)) Then
            If Range("AX" & I * 5) > 5 Then
            ' или
            'If Cells(I * 5, 50) > 5 Then
                If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
            Else
                Beep(I) = False
            End If
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Воскресенье, 17.12.2017, 20:54
 
Ответить
СообщениеНе могу воспроизвести, но попробуйте так
[vba]
Код
Dim Beep(1 To 2000 / 5) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To UBound(Beep)
        If IsNumeric(Range("AX" & I * 5)) Then
            If Range("AX" & I * 5) > 5 Then
            ' или
            'If Cells(I * 5, 50) > 5 Then
                If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
            Else
                Beep(I) = False
            End If
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

Автор - bmv98rus
Дата добавления - 17.12.2017 в 20:25
Karataev Дата: Воскресенье, 17.12.2017, 20:41 | Сообщение № 24
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
awaddwaawddw, исправил макрос в посте 21.
 
Ответить
Сообщениеawaddwaawddw, исправил макрос в посте 21.

Автор - Karataev
Дата добавления - 17.12.2017 в 20:41
Karataev Дата: Воскресенье, 17.12.2017, 21:33 | Сообщение № 25
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
bmv98rus, я так тестировал Ваш макрос. В строку 9, в столбцы B:M вставил единицы. Затем напечатал в "B8" 1. Произошел звук. Затем напечатал в "C8" 1, звука уже нет.
Тут вопрос к автору - звук должен быть всегда или только при переходе от меньше 5 к больше 5?
Если всегда, то тогда макрос пользователя bmv98rus не работает.


Сообщение отредактировал Karataev - Воскресенье, 17.12.2017, 21:52
 
Ответить
Сообщениеbmv98rus, я так тестировал Ваш макрос. В строку 9, в столбцы B:M вставил единицы. Затем напечатал в "B8" 1. Произошел звук. Затем напечатал в "C8" 1, звука уже нет.
Тут вопрос к автору - звук должен быть всегда или только при переходе от меньше 5 к больше 5?
Если всегда, то тогда макрос пользователя bmv98rus не работает.

Автор - Karataev
Дата добавления - 17.12.2017 в 21:33
bmv98rus Дата: Воскресенье, 17.12.2017, 22:08 | Сообщение № 26
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4125
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
Karataev Вы правы на 100% что решать заказчику, когда что пикает. Я например так и не понял, что нужно в итоге, то есть критерий оповещения, более того поздно заметил появившийся только в 22 посте пример. В моем алгоритме тресхолд - переход одного из значений через 5.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеKarataev Вы правы на 100% что решать заказчику, когда что пикает. Я например так и не понял, что нужно в итоге, то есть критерий оповещения, более того поздно заметил появившийся только в 22 посте пример. В моем алгоритме тресхолд - переход одного из значений через 5.

Автор - bmv98rus
Дата добавления - 17.12.2017 в 22:08
stalber Дата: Понедельник, 18.12.2017, 15:40 | Сообщение № 27
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

Excel 2021
Ещё вопрос, а возможно ли сделать чтобы звук производился даже если файл экселя закрыт и в него программа вписывает данные, то есть другими словами звук производится сейчас когда файл включен и я сам заполня, а если файл заполняяется сам из источника, мозно ли сделать чтобы звук тозе производился дазе если я не зашел в сам лист. Мозет ли выкльченный лист издавать звук? А данные а экселе программа заполняет.
 
Ответить
СообщениеЕщё вопрос, а возможно ли сделать чтобы звук производился даже если файл экселя закрыт и в него программа вписывает данные, то есть другими словами звук производится сейчас когда файл включен и я сам заполня, а если файл заполняяется сам из источника, мозно ли сделать чтобы звук тозе производился дазе если я не зашел в сам лист. Мозет ли выкльченный лист издавать звук? А данные а экселе программа заполняет.

Автор - stalber
Дата добавления - 18.12.2017 в 15:40
bmv98rus Дата: Понедельник, 18.12.2017, 16:00 | Сообщение № 28
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4125
Репутация: 769 ±
Замечаний: 0% ±

Excel 2013/2016
И даже если комп выключен, то тоже можно, только тихонький-тихонький.

Можно но для этого надо написать уже VBS скрипт, или программку на другом языке, который, будет запускаться из системного планировщика задач ежесекундно или постоянно работать в цикле с таймаутом определенным. Он должен проверять все ваши условия, при этом надеятся на то что кто-то, что-то пересчитает без него, не стоит, так как формулы в закрытом файле не считаются, а потом издавать нужный звук.

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


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Понедельник, 18.12.2017, 16:13
 
Ответить
СообщениеИ даже если комп выключен, то тоже можно, только тихонький-тихонький.

Можно но для этого надо написать уже VBS скрипт, или программку на другом языке, который, будет запускаться из системного планировщика задач ежесекундно или постоянно работать в цикле с таймаутом определенным. Он должен проверять все ваши условия, при этом надеятся на то что кто-то, что-то пересчитает без него, не стоит, так как формулы в закрытом файле не считаются, а потом издавать нужный звук.

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

Автор - bmv98rus
Дата добавления - 18.12.2017 в 16:00
stalber Дата: Понедельник, 18.12.2017, 16:03 | Сообщение № 29
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

Excel 2021
;-)
 
Ответить
Сообщение;-)

Автор - stalber
Дата добавления - 18.12.2017 в 16:03
stalber Дата: Вторник, 26.12.2017, 17:56 | Сообщение № 30
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

Excel 2021
У меня 2 книги: книга 1 и книга 2.

Книга 1 автоматически с помощью таймера макроса, получает данные из закрытой книги 2, каждые 30 секунд.
Книга 1 не воспроизводит звук, как сделать чтобы Книга 1 воспроизводила звук?

Вот рабочий код, помогите пожалуйста его доработать:

[vba]
Код


Dim Beep(1 To 2000 / 5) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To UBound(Beep)
        If IsNumeric(Range("O" & I * 5)) Then
            If Range("O" & I * 5) > 5 Then
            ' или
            'If Cells(I * 5, 50) > 5 Then
                If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
            Else
                Beep(I) = False
            End If
        Else
            Beep(I) = False
        End If
    Next I
End Sub

[/vba]

[vba]
Код

Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Sub beeps(melody As String, Optional ByVal BeepTime As Integer = 200): mr = "qazwsxedcrfvtgbyhnujmik,ol.p;/['"
    ' If Not UCase(VBA.Environ(5)) Like "*IGORHOME*" Then If Not GRegB("EnableSound", az_Reg_Settings) Then Exit Sub
    For I = 1 To Len(melody)
        DoEvents
        nextlen = 1: letter = Mid$(melody, I, 1)
        nota = InStr(1, mr, letter)
        If IsNumeric(letter) And letter > 0 Then nextlen = letter: I = I + 1: nota = InStr(1, mr, Mid$(melody, I, 1))
  
       If nota > 0 Then tone = 220 * (2 ^ ((nota - 1) / 12)): a = _
       Beep(tone, nextlen * BeepTime) Else: a = Beep(30000, nextlen * BeepTime / _
5)
    Next:
End Sub

Sub beepH(): beeps "k", 100: End Sub
Sub beepH0(): beeps "k", 30: End Sub
Sub BeepH2(): beeps "k,k", 100: End Sub
Sub beepL(): Beep 100, 100: End Sub
Sub beepL0(): Beep 100, 30: End Sub
Sub BeepL2(): Beep 100, 100: Beep 104, 100: Beep 100, 100: Beep 70, 200: End Sub
Sub melody1(): speed = 150
    beeps "5 5 3jnybt tybtftdx2d", speed: beeps "5 5 3jnybt tybtftdx2d", speed
    beeps "5 5 nnnyc3 ct2j nyc2 ty2btff ftf2t", speed: beeps "5 5 nnnyc3 ct2j nyc2 ty2btff ftf3 yb2t", speed
End Sub
Sub melody2(): speed = 250
  
   beeps "jny3b3t5 5 jny3y3b 5 5 bynk2m5 bynk2m j2b2 n3y", speed: beeps _
    "5 5 5 jny3b3t5 5 jny3y3b 5 5 bynk2m5 bynk2m j2b2 y3t", speed
    beeps "5 5 5 ff3y5 yy2yyy2yby2b4t", speed: beeps "5 5 5 ff2y5 tby tby nj3m", speed
End Sub

Sub beepNew(): Beep 440, 500: End Sub

[/vba]

Данный код что выше, он работает корректно, если нет надобности брать данные из закрытой книги в открытую книгу.


Сообщение отредактировал awaddwaawddw - Вторник, 26.12.2017, 18:05
 
Ответить
СообщениеУ меня 2 книги: книга 1 и книга 2.

Книга 1 автоматически с помощью таймера макроса, получает данные из закрытой книги 2, каждые 30 секунд.
Книга 1 не воспроизводит звук, как сделать чтобы Книга 1 воспроизводила звук?

Вот рабочий код, помогите пожалуйста его доработать:

[vba]
Код


Dim Beep(1 To 2000 / 5) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To UBound(Beep)
        If IsNumeric(Range("O" & I * 5)) Then
            If Range("O" & I * 5) > 5 Then
            ' или
            'If Cells(I * 5, 50) > 5 Then
                If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
            Else
                Beep(I) = False
            End If
        Else
            Beep(I) = False
        End If
    Next I
End Sub

[/vba]

[vba]
Код

Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Sub beeps(melody As String, Optional ByVal BeepTime As Integer = 200): mr = "qazwsxedcrfvtgbyhnujmik,ol.p;/['"
    ' If Not UCase(VBA.Environ(5)) Like "*IGORHOME*" Then If Not GRegB("EnableSound", az_Reg_Settings) Then Exit Sub
    For I = 1 To Len(melody)
        DoEvents
        nextlen = 1: letter = Mid$(melody, I, 1)
        nota = InStr(1, mr, letter)
        If IsNumeric(letter) And letter > 0 Then nextlen = letter: I = I + 1: nota = InStr(1, mr, Mid$(melody, I, 1))
  
       If nota > 0 Then tone = 220 * (2 ^ ((nota - 1) / 12)): a = _
       Beep(tone, nextlen * BeepTime) Else: a = Beep(30000, nextlen * BeepTime / _
5)
    Next:
End Sub

Sub beepH(): beeps "k", 100: End Sub
Sub beepH0(): beeps "k", 30: End Sub
Sub BeepH2(): beeps "k,k", 100: End Sub
Sub beepL(): Beep 100, 100: End Sub
Sub beepL0(): Beep 100, 30: End Sub
Sub BeepL2(): Beep 100, 100: Beep 104, 100: Beep 100, 100: Beep 70, 200: End Sub
Sub melody1(): speed = 150
    beeps "5 5 3jnybt tybtftdx2d", speed: beeps "5 5 3jnybt tybtftdx2d", speed
    beeps "5 5 nnnyc3 ct2j nyc2 ty2btff ftf2t", speed: beeps "5 5 nnnyc3 ct2j nyc2 ty2btff ftf3 yb2t", speed
End Sub
Sub melody2(): speed = 250
  
   beeps "jny3b3t5 5 jny3y3b 5 5 bynk2m5 bynk2m j2b2 n3y", speed: beeps _
    "5 5 5 jny3b3t5 5 jny3y3b 5 5 bynk2m5 bynk2m j2b2 y3t", speed
    beeps "5 5 5 ff3y5 yy2yyy2yby2b4t", speed: beeps "5 5 5 ff2y5 tby tby nj3m", speed
End Sub

Sub beepNew(): Beep 440, 500: End Sub

[/vba]

Данный код что выше, он работает корректно, если нет надобности брать данные из закрытой книги в открытую книгу.

Автор - stalber
Дата добавления - 26.12.2017 в 17:56
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!