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

Вход

Регистрация

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

 

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

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Звук при необходимом числе
stalber Дата: Воскресенье, 17.12.2017, 13:48 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

Excel 2021
Если у нас в ячейки оказывает число 5 или больше, то производиться звук. Я на форуме нашёл такой код:

[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]

А вот вторую часть я сделал вместо:

[vba]
Код
Private Sub Worksheet_Calculate()
    If [a1] > 5 Then BeepH2
End Sub
[/vba]

Вот такую:

[vba]
Код
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
[/vba]

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

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

Как исправить код?
 
Ответить
СообщениеЕсли у нас в ячейки оказывает число 5 или больше, то производиться звук. Я на форуме нашёл такой код:

[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]

А вот вторую часть я сделал вместо:

[vba]
Код
Private Sub Worksheet_Calculate()
    If [a1] > 5 Then BeepH2
End Sub
[/vba]

Вот такую:

[vba]
Код
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
[/vba]

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

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

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

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

Excel 2013/2016
awaddwaawddw, Вы б определились, где спрашиваете
кросс


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

Сообщение отредактировал bmv98rus - Воскресенье, 17.12.2017, 14:13
 
Ответить
Сообщениеawaddwaawddw, Вы б определились, где спрашиваете
кросс

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

Excel 2021
Тема актуально, ищу решение проблемы.
 
Ответить
СообщениеТема актуально, ищу решение проблемы.

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

Excel
Попробуйте использовать вместо события "Worksheet_Calculate", событие "Worksheet_Change". Это событие запускается, когда происходит изменение данных в какой-либо ячейке листа.
Событие "Worksheet_Calculate" связано с формулами. Это событие запускается, когда изменяются данные, участвующие в формуле, при вставке формул (возможно и в других случаях).
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Range("A1:A4")) Is Nothing Then Exit Sub
    If Target.Value > 5 Then BeepH2
End Sub
[/vba]
 
Ответить
СообщениеПопробуйте использовать вместо события "Worksheet_Calculate", событие "Worksheet_Change". Это событие запускается, когда происходит изменение данных в какой-либо ячейке листа.
Событие "Worksheet_Calculate" связано с формулами. Это событие запускается, когда изменяются данные, участвующие в формуле, при вставке формул (возможно и в других случаях).
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Range("A1:A4")) Is Nothing Then Exit Sub
    If Target.Value > 5 Then BeepH2
End Sub
[/vba]

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

Excel 2021
Karataev! Спасибо да этот код работает!

Почему то звук не издаётся, если число не в ручную вписывается, а с помощью вычисления формул.

То есть скажем если я впишу в ячейку A1 число 7 то звук произведётся.
А если в ячейку A1 впишет эксель, путём мною заполненных B1+C1=A1 Если я заполню B1 C1 и число A1 получится больше 5 то звук не будет издаваться.


Сообщение отредактировал awaddwaawddw - Воскресенье, 17.12.2017, 16:58
 
Ответить
СообщениеKarataev! Спасибо да этот код работает!

Почему то звук не издаётся, если число не в ручную вписывается, а с помощью вычисления формул.

То есть скажем если я впишу в ячейку A1 число 7 то звук произведётся.
А если в ячейку A1 впишет эксель, путём мною заполненных B1+C1=A1 Если я заполню B1 C1 и число A1 получится больше 5 то звук не будет издаваться.

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

Excel
Предполагается, что нужно работать со строками, начиная с 5, через 5 строк.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Target.Column <> Columns("AX").Column Then Exit Sub
    If Target.Row < 5 Then Exit Sub
    If Target.Row Mod 5 <> 0 Then Exit Sub
    If Target.Value > 5 Then BeepH2
End Sub
[/vba]

Вы это изменили:
[vba]
Код
If Target.CountLarge > 1 Then Exit Sub
[/vba]
Это означает, если изменение произошло не в одной ячейке, то выход из макроса. Если изменение произошло сразу в нескольких ячейках, то здесь надо уже как-то обрабатывать такую ситуацию. Поэтому оставьте здесь 1.
 
Ответить
СообщениеПредполагается, что нужно работать со строками, начиная с 5, через 5 строк.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Target.Column <> Columns("AX").Column Then Exit Sub
    If Target.Row < 5 Then Exit Sub
    If Target.Row Mod 5 <> 0 Then Exit Sub
    If Target.Value > 5 Then BeepH2
End Sub
[/vba]

Вы это изменили:
[vba]
Код
If Target.CountLarge > 1 Then Exit Sub
[/vba]
Это означает, если изменение произошло не в одной ячейке, то выход из макроса. Если изменение произошло сразу в нескольких ячейках, то здесь надо уже как-то обрабатывать такую ситуацию. Поэтому оставьте здесь 1.

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

Excel 2021
Почему то звук не издаётся, если число не в ручную вписывается, а с помощью вычисления формул.

То есть скажем если я впишу в ячейку A1 число 7 то звук произведётся.
А если в ячейку A1 впишет эксель, путём мною заполненных B1+C1=A1 Если я заполню B1 C1 и число A1 получится больше 5 то звук не будет издаваться.
 
Ответить
СообщениеПочему то звук не издаётся, если число не в ручную вписывается, а с помощью вычисления формул.

То есть скажем если я впишу в ячейку A1 число 7 то звук произведётся.
А если в ячейку A1 впишет эксель, путём мною заполненных B1+C1=A1 Если я заполню B1 C1 и число A1 получится больше 5 то звук не будет издаваться.

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

Excel
Почему то звук не издаётся, если число не в ручную вписывается, а с помощью вычисления формул.

Событие "Worksheet_Change" не запускается при пересчете формул.
Для этого надо использовать событие "Worksheet_Calculate". Но в нем нельзя понять, какие формулы пересчитались.
 
Ответить
Сообщение
Почему то звук не издаётся, если число не в ручную вписывается, а с помощью вычисления формул.

Событие "Worksheet_Change" не запускается при пересчете формул.
Для этого надо использовать событие "Worksheet_Calculate". Но в нем нельзя понять, какие формулы пересчитались.

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

Excel
И вы используйте в теме одни какие-нибудь ячейки. Сейчас Вы пишите просто столбцы A, AX. Так можно запутаться.
 
Ответить
СообщениеИ вы используйте в теме одни какие-нибудь ячейки. Сейчас Вы пишите просто столбцы A, AX. Так можно запутаться.

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

Excel 2021
По порядку: касаемо столбцов A это просто пример.

У меня все значения в столбце AX5, AX10, AX15... AX2000
И эти значения с помощью формул появляются.
То есть я заполнил ячейки которые дали в сумме AX5 больше 5-ти и произвёлся звук.
Через 10 минут я заполнил новые ячейки которые дали в сумме AX10 меньше 5-ти и звук не произвёлся
Потом через 20 минут я заполнил новые ячейки которые дали в сумме AX15 больше 5-ти и звук снова произвёлся.

Цитата
Для этого надо использовать событие "Worksheet_Calculate". Но в нем нельзя понять, какие формулы пересчитались.

Есть решение или выхода нет?


Сообщение отредактировал awaddwaawddw - Воскресенье, 17.12.2017, 17:19
 
Ответить
СообщениеПо порядку: касаемо столбцов A это просто пример.

У меня все значения в столбце AX5, AX10, AX15... AX2000
И эти значения с помощью формул появляются.
То есть я заполнил ячейки которые дали в сумме AX5 больше 5-ти и произвёлся звук.
Через 10 минут я заполнил новые ячейки которые дали в сумме AX10 меньше 5-ти и звук не произвёлся
Потом через 20 минут я заполнил новые ячейки которые дали в сумме AX15 больше 5-ти и звук снова произвёлся.

Цитата
Для этого надо использовать событие "Worksheet_Calculate". Но в нем нельзя понять, какие формулы пересчитались.

Есть решение или выхода нет?

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

Excel
Новичку тяжело переделать пример под реальные данные, поэтому в темах описывайте реальные данные.
Давайте заново. А то сейчас непонятно, про какие столбцы обсуждать.
 
Ответить
СообщениеНовичку тяжело переделать пример под реальные данные, поэтому в темах описывайте реальные данные.
Давайте заново. А то сейчас непонятно, про какие столбцы обсуждать.

Автор - Karataev
Дата добавления - 17.12.2017 в 17:36
stalber Дата: Воскресенье, 17.12.2017, 18:02 | Сообщение № 12
Группа: Проверенные
Ранг: Обитатель
Сообщений: 371
Репутация: 7 ±
Замечаний: 40% ±

Excel 2021
У меня все значения в столбце AX5, AX10, AX15...и так до... AX2000
И эти значения с помощью формул появляются, то есть я заполнил ячейки например C5+D5 которые дали в сумме больше 5-ти и появились в ячейке AX5 и произвёлся звук.
Через 10 минут я заполнил новые ячейки C10+D10 которые дали в сумме меньше 5-ти и появились в ячейке AX10 звук не произвёлся.
Потом через 20 минут я заполнил новые ячейки C15+D15 которые дали в сумме больше 5-ти и появились в ячейке AX15 и звук снова произвёлся.

Вот что мне нужно, от этой всей темы. Извиняюсь за изначально не корректно сформулированный вопрос в начале темы.
 
Ответить
СообщениеУ меня все значения в столбце AX5, AX10, AX15...и так до... AX2000
И эти значения с помощью формул появляются, то есть я заполнил ячейки например C5+D5 которые дали в сумме больше 5-ти и появились в ячейке AX5 и произвёлся звук.
Через 10 минут я заполнил новые ячейки C10+D10 которые дали в сумме меньше 5-ти и появились в ячейке AX10 звук не произвёлся.
Потом через 20 минут я заполнил новые ячейки C15+D15 которые дали в сумме больше 5-ти и появились в ячейке AX15 и звук снова произвёлся.

Вот что мне нужно, от этой всей темы. Извиняюсь за изначально не корректно сформулированный вопрос в начале темы.

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

Excel
Вы привели столбцы C, D для примера.
Напишите реальные столбцы, которые участвуют в формировании данных в столбце AX.
 
Ответить
СообщениеВы привели столбцы C, D для примера.
Напишите реальные столбцы, которые участвуют в формировании данных в столбце AX.

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

Excel 2013/2016
awaddwaawddw, ну раз уж сюда перебрались, то сформулируйте задачу более четко. Вам нужно , чтоб при значении в одной из контролируемых ячеек сработало событие один раз.
На мой взгляд, все просто, делам тригер который при первом совадении. В моем примере менять значения в столбце С. дабы калькуляцию запустить.
[vba]
Код
Dim beepDone As Boolean

Private Sub Worksheet_Calculate()
    If [a1] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    ElseIf [a2] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    ElseIf [a3] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    ElseIf [a4] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    Else
        beepReady = False
    End If
End Sub
[/vba]
К сообщению приложен файл: CheckANDBeep.xlsm (16.8 Kb)


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

Сообщение отредактировал bmv98rus - Воскресенье, 17.12.2017, 18:29
 
Ответить
Сообщениеawaddwaawddw, ну раз уж сюда перебрались, то сформулируйте задачу более четко. Вам нужно , чтоб при значении в одной из контролируемых ячеек сработало событие один раз.
На мой взгляд, все просто, делам тригер который при первом совадении. В моем примере менять значения в столбце С. дабы калькуляцию запустить.
[vba]
Код
Dim beepDone As Boolean

Private Sub Worksheet_Calculate()
    If [a1] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    ElseIf [a2] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    ElseIf [a3] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    ElseIf [a4] > 5 Then
        If Not beepDone Then BeepH2: beepDone = True
    Else
        beepReady = False
    End If
End Sub
[/vba]

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

Excel 2021
Karataev прикрепил файл. Конечное число появляется в AX5 , AX10, AX15...

bmv98rus по вашему примеру, получается что только 1 раз издаться звук и всё, последующие разы уже звук не издаётся.
В вашем примере я ввёл:
в C1 цифру 3 звука нет.
в C2 цифру 2 звука нет.
в С3 цифру 7 звук есть.
в С4 цифру 8 звука нет, а мне нужно чтобы был снова звук, так как цифры больше 5-ти.
К сообщению приложен файл: primer.xlsx (16.0 Kb)
 
Ответить
СообщениеKarataev прикрепил файл. Конечное число появляется в AX5 , AX10, AX15...

bmv98rus по вашему примеру, получается что только 1 раз издаться звук и всё, последующие разы уже звук не издаётся.
В вашем примере я ввёл:
в C1 цифру 3 звука нет.
в C2 цифру 2 звука нет.
в С3 цифру 7 звук есть.
в С4 цифру 8 звука нет, а мне нужно чтобы был снова звук, так как цифры больше 5-ти.

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

Excel 2021
Karataev на AX5 звук производиться, а на AX10 если уже там вводиться данные то звук не производиться.
К сообщению приложен файл: primer2.xlsm (23.6 Kb)


Сообщение отредактировал awaddwaawddw - Воскресенье, 17.12.2017, 19:37
 
Ответить
СообщениеKarataev на AX5 звук производиться, а на AX10 если уже там вводиться данные то звук не производиться.

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

Excel 2013/2016
[vba]
Код
Dim Beep(1 To 4) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To 4
        If Cells(I, 1) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

Сразу оговорю, если музыка отзвучала по ранее измененной ячейке, то снова не зазвучит если ячека опять >5.
К сообщению приложен файл: 0783465.xlsm (17.9 Kb)


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

Сообщение отредактировал bmv98rus - Воскресенье, 17.12.2017, 19:43
 
Ответить
Сообщение[vba]
Код
Dim Beep(1 To 4) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To 4
        If Cells(I, 1) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

Сразу оговорю, если музыка отзвучала по ранее измененной ячейке, то снова не зазвучит если ячека опять >5.

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

Excel 2021
bmv98rus да этот код работает!

[vba]
Код


Dim Beep(1 To 4) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To 4
        If Cells(I, 1) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

А как отредактировать код, у меня ячейки по которым ориентироваться: AX5, AX10, AX15... AX2000
 
Ответить
Сообщениеbmv98rus да этот код работает!

[vba]
Код


Dim Beep(1 To 4) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To 4
        If Cells(I, 1) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

А как отредактировать код, у меня ячейки по которым ориентироваться: AX5, AX10, AX15... AX2000

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

Excel
Макрос запускается, когда пользователь вводит данные в столбцы "B:M". При этом макрос смотрит, в какие строки внесены изменения. В файле строки должны быть такие же, как в файле с примером. В группах (пример группы - строки 1:5) должно быть одинаковое кол-во строк. И между группами не должно быть пустых строк (как в файле с примером).


Сообщение отредактировал Karataev - Воскресенье, 17.12.2017, 20:40
 
Ответить
СообщениеМакрос запускается, когда пользователь вводит данные в столбцы "B:M". При этом макрос смотрит, в какие строки внесены изменения. В файле строки должны быть такие же, как в файле с примером. В группах (пример группы - строки 1:5) должно быть одинаковое кол-во строк. И между группами не должно быть пустых строк (как в файле с примером).

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

Excel 2021
Karataev спасибо, этот код работает, единственное при вводе данных в ячейки каждый раз выскакивает ошибка, которую можно игнорировать, но немного раздражает это окно каждый раз. Его как то убрать можно? Файл прикрепил.
Ошибка: Microsoft Visual Basic: Run time error "13": type mismatch

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Long
    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Columns("B:M")) Is Nothing Then Exit Sub
    If (Target.Row - 3) Mod 5 = 0 Then
        r = Target.Row + 2
    ElseIf (Target.Row - 4) Mod 5 = 0 Then
        r = Target.Row + 1
    Else
        Exit Sub
    End If
    If Cells(r, "AX").Value > 5 Then BeepH2
End Sub
[/vba]

bmv98rus спасибо, этот код работает, а как отредактировать код, у меня ячейки по которым ориентироваться: AX5, AX10, AX15... AX2000
[vba]
Код
Dim Beep(1 To 4) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To 4
        If Cells(I, 1) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]
К сообщению приложен файл: primer3.xlsm (22.6 Kb)


Сообщение отредактировал awaddwaawddw - Воскресенье, 17.12.2017, 19:52
 
Ответить
СообщениеKarataev спасибо, этот код работает, единственное при вводе данных в ячейки каждый раз выскакивает ошибка, которую можно игнорировать, но немного раздражает это окно каждый раз. Его как то убрать можно? Файл прикрепил.
Ошибка: Microsoft Visual Basic: Run time error "13": type mismatch

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Long
    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Columns("B:M")) Is Nothing Then Exit Sub
    If (Target.Row - 3) Mod 5 = 0 Then
        r = Target.Row + 2
    ElseIf (Target.Row - 4) Mod 5 = 0 Then
        r = Target.Row + 1
    Else
        Exit Sub
    End If
    If Cells(r, "AX").Value > 5 Then BeepH2
End Sub
[/vba]

bmv98rus спасибо, этот код работает, а как отредактировать код, у меня ячейки по которым ориентироваться: AX5, AX10, AX15... AX2000
[vba]
Код
Dim Beep(1 To 4) As Boolean
Private Sub Worksheet_Calculate()
    For I = 1 To 4
        If Cells(I, 1) > 5 Then
            If Not Beep(I) Then BeepH2: Beep(I) = True: Exit For
        Else
            Beep(I) = False
        End If
    Next I
End Sub
[/vba]

Автор - stalber
Дата добавления - 17.12.2017 в 19:46
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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