Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Звук при нужном числе

Автор awaddwaawddwa, 17.12.2017, 13:39

« назад - далее »

awaddwaawddwa

Если у нас в ячейки оказывает число 5 или больше, то производиться звук. Я на форуме нашёл такой код:
Цитировать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

А вот вторую часть я сделал вместо:
ЦитироватьPrivate Sub Worksheet_Calculate()
    If [a1] > 5 Then BeepH2
End Sub


Вот такую:
ЦитироватьPrivate Sub Worksheet_Calculate()
    If [a1] > 5 Then BeepH2
    If [a2] > 5 Then BeepH2
    If [a3] > 5 Then BeepH2
    If [a4] > 5 Then BeepH2
End Sub

И столкнулся с такой проблемой.

У меня изначально ячейки A1 A2 A3 A4 пустые.
Представим что они заполняются:
Например если в ячейки A1 число меньше 5-ти то звук не издаётся - ВСЁ ПРАВИЛЬНО, ПЕРЕХОДИМ К СЛЕДУЮЩЕЙ.
Например если в ячейки A2 число меньше 5-ти то звук не издаётся - ВСЁ ПРАВИЛЬНО, ПЕРЕХОДИМ К СЛЕДУЮЩЕЙ.
Например если в ячейки A3 число БОЛЬШЕ 5-ти то звук издаётся - ВСЁ ПРАВИЛЬНО, ПЕРЕХОДИМ К СЛЕДУЮЩЕЙ.
А вот если в ячейки A4 число меньше 5-ти то звук ИЗДАЁТСЯ - А ВОТ ЭТО УЖЕ НЕ ПРАВИЛЬНО, нужно чтобы не издавался.

Как исправить код?

vikttur

#1
Нужно самостоятель указывать на параллельное размещение темы. Ответ:
http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=99348&TITLE_SEO=99348-zvuk-pri-nuzhnom-chisle

http://www.excelworld.ru/forum/2-36586-1

Измените логин на адекватный

awaddwaawddwa

ок. Тема актуально нужна помощь.