Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1056to1060
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
Inhaltsverzeichnis

AddIn über VBA auslösen

AddIn über VBA auslösen
10.03.2009 11:35:13
klausk
Guten Tag,
ich habe als "Telefonwählgerät" ein AddIn installiert. Das entsprechende Symbol für Wählen ist in der Commandbar vorhanden.
Nun möchte ich CommandButtons erstellen und mit deren Caption den Wählvorgang auslösen.
Wie kann ich ein AddIn über VBA auslösen, der Makrorekorder geht nicht so weit mit ?
Vielen Dank vorab
Klaus

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: AddIn über VBA auslösen
10.03.2009 11:43:10
Josef
Hallo Klaus,
dazu müsste man den Code des Addins sehen.
Gruß Sepp

AW: AddIn über VBA auslösen
10.03.2009 11:59:26
klausk
Hallo Sepp,
ich habe im Ordner AddIn anhand des Dateinamens keine entsprechende Datei finden können. Ebensowenig passt ein Datum. Hier sind lauter ECF Dateien vorhanden.
Im Kontextmenue zu den Zellen kommt aber die Wählfunktion bei Rechtsklick auch.
Wo kann ich noch den Code finden ?
Danke und Gruss vom Klaus
AW: AddIn über VBA auslösen
10.03.2009 12:06:38
Josef
Hallo Klaus,
das Addin findest du im VBE, aber der Code ist sicher geschützt und darum kommst du da nicht ran.
Wie heist den das Addin und woher stammt es?
Gruß Sepp

Anzeige
AW: AddIn über VBA auslösen
10.03.2009 12:12:20
klausk
Hallo Sepp,
der Autor ist Rene Holtz, der hier im Forum unter mumpel aktiv ist.
Danke
Klaus
Nachtrag
10.03.2009 12:16:32
klausk
Das Teil heißt
excel2000-2003_xla und ist mit Passwort geschützt
dann versuchst du am besten...
10.03.2009 12:25:40
Josef
... direkt mit mumpel kontakt aifzunehmen.
Gruß Sepp

Kontakt
10.03.2009 12:29:41
Josef
Hallo Klaus,
hier findest du die Kontaktdaten von mumpel
Gruß Sepp

@mumpel, kannst mal bitte hier schauen
10.03.2009 12:32:47
klausk
Guten Tag,
könntest Du Dir mal bitte meine Frage anschauen, da ich weder ein VB Passwort knacken kann noch dies möchte.
Vielen Dank
Klaus
Anzeige
AW: @mumpel, kannst mal bitte hier schauen
10.03.2009 15:42:41
klausk
AW: @mumpel, kannst mal bitte hier schauen
10.03.2009 19:33:53
mumpel
Hallo!
Der Code verbirgt sich natürlich im VBA-Projekt. Das Hauptmakro sieht wie folgt aus (muss in ein Standardmodul). Den Quellcode gibt es als HTML-Dokumentation auf Nachfrage (nur per Email). Der Beispielcode ist allerdings aus dem Office 2007-AddIn. Nicht benötigtes muss entfernt werden.
Zuerst aber muss man den API-Code in ein Standardmodul einfügen.
Option Private Module
Option Explicit

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

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


Das folgende Makro übergibt die zu wählende Rufnummer an die TAPI-Schnittstelle (sofern die Bedingungen übereinstimmen). Vor der Übergabe der Rufnummer findet noch eine Bereinigung des Zellinhaltes und eine Prüfung des Selben statt.

Public Sub NummerAnWählhilfeÜbergeben(strT As String, Name As String)
Application.EnableCancelKey = False
Dim cancel As Boolean
Dim i As Integer
Dim s As String
Dim ST As String

If strT = "" Then GoTo Prüfpunkt

Rem Ersetzen von Sonderzeichen in zu wählenden Rufnummern 
Rem "ST" = Auslesen der Länderkennung (in Registry gespeichert) 
ST = GetSetting("RMH_Installationen", "w2007", "STKenn")

strT = Replace(strT, "_", " ")
strT = Replace(strT, "<", " ")
strT = Replace(strT, ">", " ")
strT = Replace(strT, "[", " ")
strT = Replace(strT, "]", " ")
strT = Replace(strT, "~", " ")
strT = Replace(strT, "*", " ")
strT = Replace(strT, "#", " ")
strT = Replace(strT, "\", " ")
strT = Replace(strT, "/", " ")
strT = Replace(strT, "-", " ")
strT = Replace(strT, "(", " ")
strT = Replace(strT, ")", " ")
If ST = "DE" And Left(strT, 3) = "+49" Then
  strT = Replace(strT, "+49", "0")
ElseIf ST = "AT" And Left(strT, 3) = "+43" Then
  strT = Replace(strT, "+43", "0")
ElseIf ST = "CH" And Left(strT, 3) = "+42" Then
  strT = Replace(strT, "+42", "0")
End If

Rem "s" = Auslesen der Einstellung für Gültigkeitsprüfung (in Registry gespeichert) 
s = GetSetting("RMH_Installationen", "Pruefung", "2")
If s = "0" Then GoTo VorwahlPrüfung

If Left(strT, 1) = "+" Then
  strT = Replace(strT, "+", "00 ")
  GoTo VorwahlPrüfung
End If

strT = Replace(strT, " ", "")

Rem Ende Ersetzen 

Rem Beginn Gültigkeitsprüfung 
For i = Len(strT) To 1 Step -1
If IsNumeric(strT) And Len(strT) > 5 And Left(strT, 1) = "0" And Not IsDate(strT) Then GoTo VorwahlPrüfung
Next i
Prüfpunkt:
MsgBox "Der Text entspricht keiner gültigen Telefonnummer.    " & Chr(13) & _
       "Der Vorgang wurde abgebrochen!!!   " & Chr(13) & _
       "Die Telefonnummer muss mindestens sechsstellig sein.  " & Chr(13) & Chr(13) & _
       "Bitte immer die Ortsvorwahl mit angeben !    " & Chr(13) & _
       "Bitte nur gültige Telefonnummern angeben!      " & Chr(13) & _
       "z.B. 0891234 oder +43(1)1234567. " & Chr(13) & _
       " " & Chr(13) & Chr(13), vbOKOnly, "Anwenderfehler !!!"
Exit Sub
Rem Ende Güligkeitsprüfung 

Rem Beginn Vorwahlprüfung 
VorwahlPrüfung:
strT = Replace(strT, "R", "")

If Left(strT, 4) = "0800" Then GoTo NummerServicedienste

If Left(strT, 4) = "0190" Or Left(strT, 4) = "0180" _
Or Left(strT, 4) = "0137" Or Left(strT, 4) = "0900" _
Or Left(strT, 4) = "0136" Then GoTo ServiceWarnung

If Left(strT, 3) = "010" Or Left(strT, 3) = "011" Then GoTo AnbieterVorwahl

If Left(strT, 2) = "00" Then GoTo NummerAusland

If Left(strT, 4) = "0151" Or Left(strT, 4) = "0152" _
Or Left(strT, 4) = "0159" Or Left(strT, 4) = "0160" _
Or Left(strT, 4) = "0162" Or Left(strT, 4) = "0163" _
Or Left(strT, 4) = "0170" Or Left(strT, 4) = "0171" _
Or Left(strT, 4) = "0172" Or Left(strT, 4) = "0173" _
Or Left(strT, 4) = "0174" Or Left(strT, 4) = "0175" _
Or Left(strT, 4) = "0176" Or Left(strT, 4) = "0177" _
Or Left(strT, 4) = "0178" Or Left(strT, 4) = "0179" Then GoTo NummerMobilfunkInland
Rem Ende Vorwahlprüfung 

Rem Beginn Wahlvorgang einleiten 

Rem Wählen Festnetznummern Inland 
Rem Definierte Anbietervorwahl für Festnetz wird 
Rem automatisch vorangestellt 
NummerFestnetzInland:
A$ = GetSetting("RMH_Installationen", "w2007", "CBCF") & strT
Telefonieren A, Name
cancel = True
Exit Sub

Rem Wählen Telefonnummern Ausland 
Rem Definierte Anbietervorwahl für Auslandsgespräche wird 
Rem automatisch vorangestellt 
NummerAusland:
If GetSetting("RMH_Installationen", "w2007", "CBCA") = "" Then
A$ = strT
Else
A$ = GetSetting("RMH_Installationen", "w2007", "CBCA") & " " & strT
End If
Telefonieren A, Name
cancel = True
Exit Sub

Rem Wählen Mobilfunknummern Inland 
Rem Definierte Anbietervorwahl für Mobilfunk wird 
Rem automatisch vorangestellt 
NummerMobilfunkInland:
A$ = GetSetting("RMH_Installationen", "w2007", "CBCM") & strT
Telefonieren A, Name
cancel = True
Exit Sub

Rem Wählen von Sonderrufnummern (Call By Call wird nicht berücksichtigt) 
NummerServicedienste:
A$ = strT
Telefonieren A, Name
cancel = True
Exit Sub

Rem Ende Wahlvorgang einleiten 

Rem Beginn Meldung 0190-Warner 
ServiceWarnung:
Rem Auslesen der Einstellung für 0190-Warner (in Registry gespeichert) 
If GetSetting("RMH_Installationen", "Warner", "2") = "0" Then GoTo NummerServicedienste
If MsgBox _
("Sie versuchen, eine Servicenummer zu wählen.  " & Chr(13) & Chr(13) & _
"Es könnte sich um eine teure Servicenummer handeln.  " & Chr(13) & Chr(13) & _
"****** Möchten Sie dies wirklich? ******  " & Chr(13) & Chr(13) & _
"Klicken Sie auf ja, wenn Sie die Nummer wählen möchten!  " & Chr(13) & Chr(13) & _
"Klicken Sie auf nein, um den Vorgang abzubrechen!  ", 308, " *** Sicherheitsfrage *** ") = 6 Then _
GoTo NummerServicedienste
Exit Sub
Rem Ende Meldung 0190-Warner 

Rem Beginn Meldung Anbietervorwahl 
AnbieterVorwahl:
MsgBox "Sie haben versucht, eine Anbietervorwahl zu benutzen." & Chr(13) & _
       "Aus Sicherheitsgründen ist dies nicht erlaubt. Dadurch " & Chr(13) & _
       "wären die Sicherheitseinstellungen umgehbar." & Chr(13) & Chr(13) & _
       "***** Der Vorgang wurde abgebrochen *****", vbOKOnly + vbExclamation, "Sicherheitshinweis"
Exit Sub
Rem Ende Meldung Anbietervorwahl 

Ende:
End Sub


Das foldende Makro (dem Kontextmenü-Button zugewiesen), welches dem CommandButton zugewiesen werden muss (der Eintrag im Kontextmenü wird beim Installieren des AddIns erzeugt), übergibt den Zellinhalt an das Wählmakro.

Sub NummerSenden()
NummerAnWählhilfeÜbergeben ActiveCell.Value, "   "
End Sub

Code eingefügt mit VBA in HTML 2.0size>
Allerdings ist es schwierig, das Ganze zu verstehen, wenn man nicht den gesamten Quellcode sieht.
Gruß, René

Anzeige
Rückfrage
10.03.2009 19:35:58
mumpel
Noch eine Rückfrage: Um welches Add-In handelt es sich? Office 2000-2003 oder Office 2007? Die AddIns für Office 2007 haben einen größeren Funktionsumfang.
AW: Rückfrage
10.03.2009 19:57:38
klausk
Guten Abend und schon mal Danke für Deine Nachricht.
Es handelt sich um Office 2000-2003
Gruss Klaus

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige