ich führe eine Kundendatenbank im OL, die ich nun in Excel
exportieren und dort weiterführen will (benötige mehr Felder
für Adress-Informationen, wie z. B. Berufsbezeichnung, akad.
Grade, Titel usw.). Gibt es nun eine Möglichkeit, auch die
Telefon-Nummer aus Excel heraus anzuwählen wie bei OL oder
benötigt man irgendwelche zusätzlichen Tools?
Bin dankbar für jeden Tipp auch Literatur!
Hi Moya,
ich denk schon dass das mit Excel geht eine Nummer wählen zu lassen mittels API-Aufrufen. Nachfolgend mal ein Beispielprogramm für Access-Vba von MS. Bei flüchtigem Anschauen könnte der Code, zur Not leicht geändert auch in Excel vba laufen.
Ein Modul erstellst du in Excel indem du Alt+F11 drückst, dann Einfügen --Modul. Dorthinein den Code von „Option Expliocit“ bis "End Function.
Finden kannst du das indem du nach folgenden Stichwörtern in groups googelst
Excel declare nummer wählen
oder auch
declare CreateFile WriteFile CloseHandle
z.B.: http://www.google.de/search?hl=de&q=excel+nummer+w%C…
Allerdings ist das alles sehr heftig für jmd. der evtl. kein Vba kann.
Gruß
Reinhard
Kommunikationen unter Win32 sind, Standard-Windows-Dateifunktionen wie CreateFile(), WriteFile() und CloseHandle() zu verwenden vereinfacht worden.
Die folgenden Schritte zeigen, wie Sie die DialNumber()-Funktion erstellen, und in Microsoft Access verwenden. 1. Öffnen Sie die Beispieldatenbank "Nordwind.mdb"
2. Erstellen Sie ein Modul und geben Sie die folgende Zeile in den Deklarationsbereich ein
Hinweis: für Sie können einige Funktionen Microsoft Windows API in einer vorhandenen in einem Microsoft Access-Bibliothek definiert werden; deshalb können Duplikate für ihre Deklarationen sein. Entfernen Sie oder auskommentieren Sie die Deklarationsanweisung in Ihrem Code, wenn eine doppelte Prozedur-Namensfehlermeldung Ihnen angezeigt wird.
HINWEIS: alle Declare-Anweisungen müssen genau wie dem Zeigen, Großschreibung einzuschließen, da Win32-Namen abhängig von Großschreibung von Kleinschreibung sind, eingegeben werden. Erstellen oder Sie Alias-Klausel für Declare-Anweisungen Anweisungen von ein vorhandenes Alias nicht haben, um Beheben von Fehlern von Ihnen oder anderen bei dem Verwenden Declare-Anweisungen oder von ihre zu erleichtern. Spielt, wie der Funktionsname groß geschrieben wird, nicht, sol. das Alias richtig geschrieben und groß geschrieben wird.
Option Explicit
Declare Function WriteFile& Lib "kernel32" \_
(ByVal hFile As Long, lpBuffer As Any, \_
ByVal nNumberOfBytesToWrite&, \_
lpNumberOfBytesWritten&, ByVal lpOverlapped&:wink:
Declare Function CreateFile& Lib "kernel32" Alias "CreateFileA" \_
(ByVal lpFileName$, ByVal dwDesiredAccess&, \_
ByVal dwShareMode&, ByVal lpSecurityAttributes&, \_
ByVal dwCreationDisposition&, ByVal dwFlagsAndAttributes&, \_
ByVal hTemplateFile&:wink:
Declare Function CloseHandle& Lib "kernel32" (ByVal hObject&:wink:
Declare Function FlushFileBuffers& Lib "kernel32" (ByVal hFile&:wink:
' The number of seconds to wait for the modem to dial before
' .. resetting the modem. If the phone hangs up prematurely
' .. try increasing this value by small increments.
Public Const WAITSECONDS = 4
Public Const ID\_CANCEL = 2
Public Const MB\_OKCANCEL = 1
Public Const MB\_ICONSTOP = 16, MB\_ICONINFORMATION = 64
3. Geben Sie folgende Prozedur ein
Function DialNumber(PhoneNumber, CommPort As String)
' PURPOSE: To dial a telephone number using the computer's modem
' ARGUMENTS:
' PhoneNumber: The telephone number to dial
' CommPort: The communications port the modem is connected
' to. Typically, modems are found on COM2, however,
' they can be configured for any COM port.
'
' EXAMPLE:
' Type the following in the Immediate window using a modem
' connected to the COM2 port:
'
' ? DialNumber("555-1212", "COM2")
'
' \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
Dim Msg As String, MsgBoxType As Integer, MsgBoxTitle As String
Dim bModemCommand(256) As Byte, ModemCommand As String
Dim OpenPort As Long
Dim RetVal As Long, RetBytes as Long, i as integer
Dim StartTime
' Ask the user to pick up the phone.
Msg = "Please pickup the phone and choose OK to dial " \_
& PhoneNumber
MsgBoxType = MB\_ICONINFORMATION + MB\_OKCANCEL
MsgBoxTitle = "Dial Number"
If MsgBox(Msg, MsgBoxType, MsgBoxTitle) = ID\_CANCEL Then
Exit Function
End If
' Open the communications port for read/write (&HC0000000).
' Must specify existing file (3).
OpenPort = CreateFile(CommPort, &HC0000000, 0, 0, 3, 0, 0)
If OpenPort = -1 Then
Msg = "Unable to open communication port " & CommPort
GoTo Err\_DialNumber
End If
' Send the telephone number to the modem.
ModemCommand = "ATDT" & PhoneNumber & vbCrLf
' Pack the string in a Byte array.
For i = 0 To Len(ModemCommand) - 1
bModemCommand(i) = Asc(Mid(ModemCommand, i + 1, 1))
Next
' Write the string to the Com port.
RetVal = WriteFile(OpenPort, bModemCommand(0), \_
Len(ModemCommand), RetBytes, 0)
If RetVal = 0 Then
Msg = "Unable to dial number " & PhoneNumber
GoTo Err\_DialNumber
End If
' Flush the buffer to make sure it actually wrote
RetVal = FlushFileBuffers(OpenPort)
' Wait WAITSECONDS seconds for the phone to dial.
StartTime = Timer
While Timer