добрый вечер. у меня есть огромный список, я перенес его в эксель. и есть специальный сканер и масса товаров, которые нужно сканировать для поиска совпадений. совпало - в ячейке надпись "да", не совпало-"нет". можно ли вот эти вариации с ДА-НЕТ обыграть звуковым сигналом? каким то стандартным из виндовс... Если честно лезть с ноутом на верха стеллажей такое себе... коллега говорит у него так и работает, но только когда ДА... спасибо за любой ответ...
добрый вечер. у меня есть огромный список, я перенес его в эксель. и есть специальный сканер и масса товаров, которые нужно сканировать для поиска совпадений. совпало - в ячейке надпись "да", не совпало-"нет". можно ли вот эти вариации с ДА-НЕТ обыграть звуковым сигналом? каким то стандартным из виндовс... Если честно лезть с ноутом на верха стеллажей такое себе... коллега говорит у него так и работает, но только когда ДА... спасибо за любой ответ...maxx
можно ли вот эти вариации с ДА-НЕТ обыграть звуковым сигналом?
- Можно, ео логика за вами. [vba]
Код
#If VBA7 Then Public Declare PtrSafe Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long #Else Public Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long #End If
Sub beeps(melody As String, Optional ByVal BeepTime As Integer = 200): mr = "qazwsxedcrfvtgbyhnujmik,ol.p;/['"
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", 800: End Sub Sub BeepH2(): beeps "k,k", 400: End Sub
[/vba] Я так тестировал, код [vba]
Код
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo CleanExit If Intersect(Target, Me.Range("B2:B100")) Is Nothing Then Exit Sub If Target.CountLarge > 1 Then Exit Sub Application.EnableEvents = False
If Target.Value = "Да" Then beepH ' звук если совпало Else BeepH2 ' звук если НЕ совпало End If
CleanExit: Application.EnableEvents = True End Sub
можно ли вот эти вариации с ДА-НЕТ обыграть звуковым сигналом?
- Можно, ео логика за вами. [vba]
Код
#If VBA7 Then Public Declare PtrSafe Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long #Else Public Declare Function Beep Lib "kernel32" _ (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long #End If
Sub beeps(melody As String, Optional ByVal BeepTime As Integer = 200): mr = "qazwsxedcrfvtgbyhnujmik,ol.p;/['"
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", 800: End Sub Sub BeepH2(): beeps "k,k", 400: End Sub
[/vba] Я так тестировал, код [vba]
Код
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo CleanExit If Intersect(Target, Me.Range("B2:B100")) Is Nothing Then Exit Sub If Target.CountLarge > 1 Then Exit Sub Application.EnableEvents = False
If Target.Value = "Да" Then beepH ' звук если совпало Else BeepH2 ' звук если НЕ совпало End If
CleanExit: Application.EnableEvents = True End Sub