Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2010, 01:50   #11
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Сообщение от sasha_prof Посмотреть сообщение
Скажите пожалуйста, у меня телефон CISCO IP PHONE 7911.
Возможно ли на него посылать запрос на совершения звонка?
Возможно.


Цитата:
Сообщение от sasha_prof Посмотреть сообщение
И что для этого нужно?
Всего-то:
  • Изучить доступные для данной модели телефона команды управления
  • Макросом подключиться к телефону через Telnet или SNMP (предварительно реализовав работу с этими протоколами средствами VBA)
    Как работать с TELNET из VBA - написано в статье Работа из VBA Excel с оборудованием через Telnet
  • Передать телефону набор команд, основываясь на номере телефона из ячейки

Последний раз редактировалось EducatedFool; 24.08.2011 в 14:58.
EducatedFool вне форума Ответить с цитированием
Старый 27.01.2010, 13:17   #12
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
Злость

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Возможно.



Всего-то:
  • Изучить доступные для данной модели телефона команды управления
  • Макросом подключиться к телефону через Telnet или SNMP (предварительно реализовав работу с этими протоколами средствами VBA)
  • Передать телефону набор команд, основываясь на номере телефона из ячейки

Айтишники зарубали данную оптимизацию на том что нужно связываться с производителями тел.
sasha_prof вне форума Ответить с цитированием
Старый 05.10.2011, 20:43   #13
ts3
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 18
По умолчанию

Так и не нашел ответа как по клику в ячейке с телефоном вызов абонента сделать

исходные данные
- телефоны клиентов забиты в диапазоне D2:D1000 в формате со скобками (в скобках код города)
- порт модема Com4
- дозвон идет через обыкновенный Windows Dialer с аналогового модема по Com4

как сделать так чтобы
- по клике на ячейке с телефоном в диапазоне D2:D1000( условие мин 6 цифр в ячейке и более; нет букв)шел вызов по этому телефону либо как вариант контексное меню со значком телефона
- если занято или сбой - дозвон повторяется
- также возможность вызова из контексного меню ( как надстройка в посте от 07.01.10 - только эта надстройка у меня не запустилась почемуто)

тест EducatedFool в посте от 07.01.10 у меня работает - модем настроен

файлик исходный прилагаю

------------------------------------------------------------------------------------------------------------------------------

вот здесь нашел код http://www.mrexcel.com/archive/VBA/28261.html
------------------------------------------------------------------------------------------------------------------------------

Dim CancelFlag As Integer

Private Sub cmdStop_Click()
CancelFlag = 1
End Sub

Private Sub Worksheet_Activate()
'Setting InputLen to 0 tells MSComm to read the entire contents of the
'input buffer when the Input property is used.

MSComm1.InputLen = 0
End Sub

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Dim Number As String

' Get the number to dial.
Number = Target.Value
If Number = "" Then Exit Sub

' Dial the selected phone number.
Dial (Number)

End Sub

Private Sub Dial(Number)
Dim DialString As String
Dim FromModem As String
Dim dummy As Integer

' AT is the Hayes compatible ATTENTION command and is required to send commands to the modem.
' DT means "Dial Tone." The Dial command uses touch tones, as opposed to pulse (DP = Dial Pulse).
' Numbers is the phone number being dialed.
' A semicolon tells the modem to return to command mode after dialing (important).
' A carriage return, vbCr, is required when sending commands to the modem.
DialString = "ATDT" + Number + ";" + vbCr

' Communications port settings.
' Assuming that a mouse is attached to COM1, CommPort is set to 2
MSComm1.CommPort = 1 ' КОД ЗАСТРЕВАЕТ НА ЭТОЙ СТРОКЕ
MSComm1.Settings = "9600,N,8,1"

' Open the communications port.
On Error Resume Next
MSComm1.PortOpen = True
If Err Then
MsgBox "COM1: not available. Change the CommPort property to another port."
Exit Sub
End If

' Flush the input buffer.
MSComm1.InBufferCount = 0

' Dial the number.
MSComm1.Output = DialString

' Wait for "OK" to come back from the modem.
Do
dummy = DoEvents()
' If there is data in the buffer, then read it.
If MSComm1.InBufferCount Then
FromModem = FromModem + MSComm1.Input
' Check for "OK".
If InStr(FromModem, "OK") Then
' Notify the user to pick up the phone.
Beep
MsgBox "Please pick up the phone and either press Enter or click OK"
Exit Do
End If
End If

' Did the user choose Cancel?
If CancelFlag Then
CancelFlag = False
Exit Do
End If
Loop

' Disconnect the modem.
MSComm1.Output = "ATH" + vbCr

' Close the port.
MSComm1.PortOpen = False
End Sub
--------------------------------------------------------------------------------------------------------------------------------

но он у меня не пошел ругается на строку MSComm1.CommPort = 1 как понял это номер порта модема - менял на 4 (у меня по Com4 модем) - все равно ругается на эту строку и далее не идет
Вложения
Тип файла: rar пример исх таблицы.rar (5.8 Кб, 7 просмотров)

Последний раз редактировалось ts3; 05.10.2011 в 21:52.
ts3 вне форума Ответить с цитированием
Старый 05.10.2011, 22:12   #14
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Все верно и будет останавливаться
Пример,как посмотреть все порты
Код:
Private Sub pusk()

     Set  MSComm1 = New MSCommLib.MSComm
        ComboBox1.Clear()
        Dim i As Integer
        For i = 1 To 15
           
                On Error Reume Next
                MSComm1.CommPort = i
                MSComm1.PortOpen = True
               ComboBox1.AddItem MSComm1.CommPort
                MSComm1.PortOpen = False
         
        Next

    End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 05.10.2011, 22:30   #15
ts3
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 18
По умолчанию

ругается на New MSCommLib.MSComm
ts3 вне форума Ответить с цитированием
Старый 05.10.2011, 23:54   #16
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Тогда вопросы в лоб
А у вас MSCommLib.dll имеется в наличии,она зарегистрирована?
Ссылка на нее есть?
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.10.2011, 07:42   #17
ts3
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 18
По умолчанию

видимо нет сейчас поищу - если можно ссылочку дайте на нее
MSCOMM32.OCX только нашел как подключить http://www.pcports.ru/articles/ke_usb10.php

Последний раз редактировалось ts3; 06.10.2011 в 08:25.
ts3 вне форума Ответить с цитированием
Старый 06.10.2011, 10:13   #18
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Цитата:
Сообщение от ts3 Посмотреть сообщение
видимо нет сейчас поищу - если можно ссылочку дайте на нее
MSCOMM32.OCX только нашел как подключить http://www.pcports.ru/articles/ke_usb10.php
Выше картинок архив Файлы к статье,там все есть
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 06.10.2011, 12:01   #19
ts3
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 18
По умолчанию

это сделал уже - MSCOMM32.OCX подключил в VBA компонент MSComm тоже завел-галку поставил
только в статье там MSCommLib.dll про установку ничего нет и MSCommLib.dll в архиве тоже нет


в самом макросе красным выделяет ComboBox1.Clear() и On Error Reume Next
последний исправил On Error Resume Next - что с ComboBox1.Clear() делать ?

Последний раз редактировалось ts3; 06.10.2011 в 18:55.
ts3 вне форума Ответить с цитированием
Старый 06.10.2011, 13:11   #20
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

ComboBox1.Clear
Уберите скобки
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Надо макрос для Excel для перестановки букв dionisprf Microsoft Office Excel 2 10.06.2009 06:04
Интересный макрос для создания писем в Outlook через Excel Neo007 Microsoft Office Excel 17 19.04.2009 20:44
помогите, пожалуйсто, написать макрос для excel bacalavr Microsoft Office Excel 2 04.04.2008 11:39
Макрос VBA EXCEl - простановка в ячейку номера страницы Обыватель Microsoft Office Excel 1 14.02.2008 12:49
Макрос в Excel для обработки группы файлов ad_sum Microsoft Office Excel 1 29.12.2007 16:56