patrickchristian
Goto Top

Tapi und Excel

Ein hallo an die gemeinde der Administratoren!
Bei der Aufgabe aus Excel eine TAPI leitung zu benutzen stellen sich mir eine Probleme.
Ich bitte daher um Hilfe. Werde natürlich so weit wie möglich mithlefen.
freu mich auf gute zusammenarbeit um das kleine projekt ablegen zu können.

Die Aufgabe:
Eine Möglichkeit aus Excel heraus Telefonnummern via TAPI anzurufen.
Meine Ansetze:
da meiner Erkenntnis nach Excel keine Möglichkeit bietet nummern an eine vorhandene TAPI Leitung zu schicken will ich jetzt versuchen ein VBA Script zu schreiben das ich dann via Tastenkombo aufrufe.
Mein Problem:
Ich habe Ahnung von VBA aber leider nicht in verbinudng mit TAPI.
Die Software:
Treiber: Ascotel IntelliGate FirstParty TAPI --- vers. 1.0.3
Office: MS2007
BS: XP-Pro / 32
Gegeben:
Die Leitung ist natürlich eingerichtet und kann zB aus Outlook ohne Probleme benutzt werden.

Bei fragen bitte einfach posten.
Freu mich auf eure kompetenten antworten!

mfg, patrick

Content-Key: 115317

Url: https://administrator.de/contentid/115317

Printed on: April 27, 2024 at 01:04 o'clock

Member: miniversum
miniversum May 05, 2009 at 12:12:38 (UTC)
Goto Top
Ich kennen den Treiber nicht aber andere Schnitttstellen habe ich schon in Excel angesteuert. Dabei gibt es folgende Möglichkeiten (vom Treiber abhängig):
1. Treiber als Steuerelement
Öffne den VBA Editor und füge dort eine UserForm hinzu. Dann klickst du im Feld mit den Steuerelementen mit rechtsklick drauf und wählst "Steuerelement hinzufügen". Du erhällst dann eine Liste mit Steuerelementen beider dein Treiber evtl. dabei steht (muss du anhand des Namen suchen). Wenn Du ihn gefunden hast markierst du ihn dann und klickst auf "ok". Im Fenster mit den Steuerelementen erscheint dann dieses neue Steuerelement für den Treiber. Das plazierst du auf der Form und fertig.
Funktionen des Treibers kannst du dann nutzen indem du ihn über UserForm.Treiber.Funktion ansprichst. Eine Auflistung der Methoden und Eigenschaften findest du dann auch im Objektkatalog.
2. Treiber als Verweis einfügen
Im VBA Editor klichst du auf "Extras" -> "Verweis hinzufügen". Dort kannst du dann suchen ob dein Treiber dort vorhanden ist. Wenn ja markieren und "ok" klicken. Anschließend kannst du ihn im Sourcecode benutzen. Eine Auflistung der Methoden und Eigenschaften findest du dann auch im Objektkatalog.
3. Treiber als DLL einbinden.
Hier deklarierst du die Funktionen der DLL und kannst sie anschliesend verwenden. Dazu benötigst du eine entsprechende Dokumentation zur DLLund den enthaltenen Funktionen.
Member: PatrickChristian
PatrickChristian May 06, 2009 at 05:34:25 (UTC)
Goto Top
Danke für deine 3 wirklich guten Möglichkeiten. Leider scheint der Treiber nicht ganz so benutzerfreundlich zu sein wie ich das gerne hätte. (verweis nicht vorhanden, dann funkt das via Steuerelement leider auch nicht, und bevor ich das mit der DLL versuche bin ich bei der Berschreibungssuche leider etwas auf eis gelaufen.

Noch eine kurze Idee von mir, auf der aufgebaut mir möglicherweise jemand helfen kann.
MS XP hat doch einen eingebauten Wähldienst ( dialer ). Da ich den so wie so konfigurieren muss (Die Tapi Schnittstelle unseres Warenwirtschaftssystems baut darauf auf), stellt sich mir die frage ob es nicht einfacherer wäre via VBA auf diesen in XP integrierten dienst zuzugreifen.
Also die frage, ist das möglich einen Nummer an diesen Wähldienst zu schicken?

Danke schon mal für eure antworten,

mfg, patrick
Member: PatrickChristian
PatrickChristian May 06, 2009 at 06:02:14 (UTC)
Goto Top
HABS GESCHAFFT!!!
Danke für die Hilfe!

Hier natürlich der CODE mit dem das ganze möglich ist

Private Declare Function tapiRequestMakeCall& Lib "TAPI32.DLL" _  
(ByVal DestAddress$, ByVal AppName$, ByVal CalledParty$, ByVal Comment$)
' Possible error return values from tapiRequestMakeCall function  
Private Const TAPIERR_NOREQUESTRECIPIENT = -2&
Private Const TAPIERR_REQUESTQUEUEFULL = -3&
Private Const TAPIERR_INVALDESTADDRESS = -4&
Private Const TAPIERR_INVALPOINTER = -18&
 
Sub Dial(strPhoneNo As String, Optional strCalledParty As String, _
Optional strComment As String, Optional bError As Boolean)
Dim strErr      As String
Dim lngResult   As Long
Dim strCaption     As String
 
    ' Assign Default values to optional arguments  
    If IsMissing(strCalledParty) Then strCalledParty = ""  
    If IsMissing(strComment) Then strComment = ""  
    If IsMissing(bError) Then bError = True
 
    lngResult = tapiRequestMakeCall&(Trim(strPhoneNo), strCaption, strCalledParty, strComment)
    'Display error message unless requested otherwise  
    If bError And lngResult <> 0 Then
        strErr = "Error dialing " + strPhoneNo + ": "  
        Select Case lngResult
            Case TAPIERR_NOREQUESTRECIPIENT
                strErr = strErr & "Unable to start/use Dialing application."  
            Case TAPIERR_REQUESTQUEUEFULL
                strErr = strErr & "Dialing requests queue is full."  
            Case TAPIERR_INVALDESTADDRESS
                strErr = strErr & "Phone number is invalid."  
            Case TAPIERR_INVALPOINTER
                strErr = strErr & "Pointer error."  
                ' This error should not occur  
            Case Else
                strErr = strErr & "Unknown error."  
                ' The four errors listed are all of the current function  
                ' error returns but who knows what the future will bring  
        End Select
        MsgBox strErr, vbOKOnly + vbExclamation, "Dialing Error"  
    End If
End Sub
 
Sub Reader()
Dim rngPhone As Range
Dim rngCell As Range
Set rngPhone = Application.Range("Phone")  
 
    For Each rngCell In rngPhone
        Dial (rngCell.Value)
    Next rngCell
End Sub

Danke noch mal!

Glg, Patrick