Anzeige
Archiv - Navigation
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
256to260
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

telefonieren nach Zeit

telefonieren nach Zeit
21.05.2003 17:55:19
Peter Knierim
Hallo

Mit diesen beiden Code in der Tabelle und in einem Modul kann man aus Excel heraus telefonieren.

Da ich sehr lange Telefonlisten habe möchte ich gern einen Automatismus basteln.

die Telefonnummern stehen in B2-Bn

Wenn z. B die Nummwer in b2 angerufen wird nach 10 sekunden ende und dann in B3 usw.

sehr kniffelig vieleicht hat jemand einen Ansatz oder eine Lösung.

Gruß Peter


Tabelle
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

If Target.Column = 2 Or Target.Column = 10 Then

Anrufen
End If
Cancel = True
End Sub


Sub Anrufen()
Dim A$
A$ = ActiveCell.Value
Telefonieren A, "C:\Windows\Dialer.exe"
End Sub


Modul
Declare Function tapiRequestMakeCall Lib "Tapi32.dll" _
(ByVal DestAddress As String, ByVal AppName As String, _
ByVal CalledParty As String, ByVal Comment As String) As Long

Sub Telefonieren(TelefonNr$, derName$)
Dim retval As Long
retval = tapiRequestMakeCall(TelefonNr, "", derName, "")
If retval <> 0 Then
MsgBox "Beim Verbindungsaufbau ist ein Fehler aufgetreten!"
End If
End Sub


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
noch offen
21.05.2003 19:42:39
ChrisL

Hi Peter

Das Abarbeiten der Liste ist mit einer For ... Next Schlaufe relativ einfach machbar. Die Verzögerung um 10 Sekunden auch (OnTime), aber wie man nach 10 Sekunden abbricht weiss ich leider nicht.

Erscheint da evtl. ein Fenster, das man mit SendKeys Escape abbrechen könnte?

Aber mal noch eine andere Frage. Was macht es für einen Sinn, eine lange Liste von Telefonnummern durch zu wählen und jeweils nach 10 Sekunden abzubrechen?

Gruss
Chris


Re: noch offen
21.05.2003 20:24:35
Peter Knierim

Hallo,

ja wenn eine verbindung steht kann man mit ALT A abbrechen

Gruß Peter

Re: noch offen
21.05.2003 20:31:40
Peter Knierim

Hallo

Begründung

für größere Umschaltarbeiten werden Listen erstellt.
Die Umschaltung wird mit Excel auf Rufnummernzuordnung geprüft.
d.h. ein kleines signal und schon soll der nächste angewählt werden.

bis zu 2000 Anschlüsse und mehr können es sein. Jetzt wird jeder einzelt angwählt Alt A und rechte Maus Taste der nächste.

Wenn ein Automatismus laufen könnte würde mir viel arbeit erspart werden.

etwas ungewöhnlich aber ganz normal

Gruß Peter

Anzeige
Re: telefonieren nach Zeit
21.05.2003 22:03:42
ChrisL

Hi Peter

Alles klar... versuchs mal hiermit...

Konnte den Wählvorgang selber natürlich nicht testen. Es könnte sein, dass du nach der SendKeys Anweisung noch 1 Sekunde 'Wait' einbauen musst.

Das Makro sollte starten, wenn du das Sub AnrufStarten aufrufst.

Gruss
Chris

Re: telefonieren nach Zeit
22.05.2003 11:01:20
ChrisL

Hi Peter

Habe es nun ausgeschlafen nochmals angeschaut. Es ist mir aufgefallen, dass bei deiner Funktion tapiRequestMakeCall etwas nicht stimmen kann. Vermutlich ist beim Kopieren ein Teil verlorgen gegangen, musst also noch prüfen.

Ferner, wenns denn funktioniert, wäre es vermutlich sinnvoll, wenn der Verbindungsaufbau fehlschlägt, statt einer MsgBox (unterbricht den Vorgang) einen Eintrag in die Zelle nebenan zu machen. Also etwa so...


Gruss
Chris

Anzeige
Re: telefonieren nach Zeit
22.05.2003 17:18:46
Peter Knierim

Hallo Chris,

ersmal recht herzlichen Dank für die Mühe die du dir gemachst hast um es mir leichter zu machen danke !

Aber es klappt nicht:

Die nachfolgenden Codes stehen in der Tabelle, wo die Rufnummern sich befinden.

Option Explicit

Public Const gsMacro As String = "UpdateClock"----" Hier bleibt das Makro stehen" und Fehlermlg siehe unten erscheint
Public gdNextTime As Double
Public Zeile As Long

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call StopClock
End Sub

Sub AnrufStarten()
Zeile = 5
Call StartClock
End Sub

Sub StartClock()
Dim iIntervall As Integer
gdNextTime = Now + TimeSerial(0, 0, 10)
Application.OnTime earliesttime:=gdNextTime, _
procedure:=gsMacro, schedule:=True
End Sub

Sub UpdateClock()
Dim A$

SendKeys ("%A")

A$ = Cells(Zeile, 5)
Telefonieren A, "C:\Windows\Dialer.exe"

If Zeile = Range("B65536").End(xlUp).Row Then Exit Sub
Zeile = Zeile + 1
Call StartClock
End Sub

Sub StopClock()
On Error Resume Next
Application.OnTime earliesttime:=gdNextTime, _
procedure:=gsMacro, schedule:=False
End Sub

(Dies steht im Modul1 der Arbeitsmappe)----------

Declare Function tapiRequestMakeCall Lib "Tapi32.dll" _
(ByVal DestAddress As String, ByVal AppName As String, _
ByVal CalledParty As String, ByVal Comment As String) As Long

Sub Telefonieren(TelefonNr$, derName$)
Dim retval As Long
retval = tapiRequestMakeCall(TelefonNr, "", derName, "")
If retval <> 0 Then
Cells(Zeile, 10) = "Fehler"
Else
Cells(Zeile, 10) = "OK"
End If
End Sub

Kannst du nochmal drüber schauen wo es klemmt.


FehlerMeldung:

Fehler beim Kompilieren

Konstanten, Zeichenfolgen fester Länge, benutzerdefinierte Datenfelder und Delace-Anweisungen sind als Public-Elemente von Objektmodulen nicht zugelassen.


Gruß Peter




Anzeige
Re: telefonieren nach Zeit
03.06.2003 10:59:04
ChrisL

Hi Peter

Sorry erst jetzt wieder zurück.

Workbook_BeforeClose gehört in 'DieseArbeitsmappe', während der ganze Rest, insbesondere Public Deklaration in ein Modul gehört.

Gruss
Chris

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige