Outlook Kontakte auslesen und eintragen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm ListBox
Bild

Betrifft: Outlook Kontakte auslesen und eintragen
von: dietmar knoll
Geschrieben am: 01.02.2004 14:23:47
Hallo
Bitte um Hilfe
Ich möchte in meiner Rechnungsvorlage die Adresse aus Meinem Outlook Kontakte Verzeichnis eintragen lassen, mittels Listbox o.ä.
Anrede
Vorname Name
Strasse
PLZ Ort
ev.Tel. Nr und Fax Nr.
Vielen Dank im voraus

Bild

Betrifft: AW: Outlook Kontakte auslesen und eintragen
von: Peter Feustel
Geschrieben am: 01.02.2004 15:32:35
Hallo Dietmar,
ich mache das in einer mehrspaltigen ListBox so:


Sub ListBoxAusOutlook()
'
'  Achtung: Der Verweis (Extras/Verweise unter VBA) auf die
'  "Microsoft Outlook 9.0 Object Library" muss aktiviert sein !!!
'
Dim Verz       As Object
Dim iIndx      As Integer
Dim olMAPI     As New Outlook.Application
Dim objItem    As Object
 
   Application.DisplayAlerts = False
   
   Application.StatusBar = "   die Adressen werden aus Outlook geholt " _
                         & " - das kann einen Moment dauern."
             
   Set Verz = olMAPI.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
   
   UserForm1.ListBox1.ColumnCount = 7
   UserForm1.ListBox1.ColumnWidths = _
            "7,0 cm; 3,5 cm; 1,0 cm; 3,0 cm; 1,0 cm; 3,5 cm; 3,0 cm"
   For iIndx = 1 To Verz.Items.Count
      Set objItem = Verz.Items(iIndx)
      With objItem
         UserForm1.ListBox1.AddItem " "
         UserForm1.ListBox1.List(iIndx - 1, 0) = .FirstName _
                                         & " " & .LastName
         If .BusinessAddressPostOfficeBox = "" Then
            UserForm1.ListBox1.List(iIndx - 1, 1) = .BusinessAddressStreet
          Else
            UserForm1.ListBox1.List(iIndx - 1, 1) = .BusinessAddressPostOfficeBox
         End If
         UserForm1.ListBox1.List(iIndx - 1, 2) = .BusinessAddressPostalCode
         UserForm1.ListBox1.List(iIndx - 1, 3) = .BusinessAddressCity
         UserForm1.ListBox1.List(iIndx - 1, 4) = .CustomerID
         UserForm1.ListBox1.List(iIndx - 1, 5) = .AssistantName
         UserForm1.ListBox1.List(iIndx - 1, 6) = .MiddleName
      End With
   Next iIndx
      
   Set objItem = Nothing
   Set olMAPI = Nothing
   
'  die ListBox nach Namen (nach nur einer, der ersten Spalte) sortieren
   
   listbox_quick_sort 0, 6, UserForm1.ListBox1, 0, UserForm1.ListBox1.ListCount - 1
   
   Application.DisplayAlerts = True
   
   Application.StatusBar = False
              
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Gruß, Peter
Bild

Betrifft: AW: Outlook Kontakte auslesen und eintragen
von: dietmar knoll
Geschrieben am: 01.02.2004 15:52:27
Hallo Peter
Herzlichen Dank. Funktioniert einwandfrei.
Bild

Betrifft: AW: Outlook Kontakte auslesen und eintragen
von: Knut
Geschrieben am: 01.02.2004 15:56:51
Late binding ist wohl hier besser:
Option Explicit

Sub ListBoxAusOutlook()
Dim Verz       As Object
Dim iIndx      As Integer
Dim olMAPI     As Object
Dim objItem    As Object
Set olMAPI = CreateObject("Outlook.Application")
 
   Application.DisplayAlerts = False
   
   Application.StatusBar = "   die Adressen werden aus Outlook geholt " _
                         & " - das kann einen Moment dauern."
             
   Set Verz = olMAPI.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
   
   UserForm1.ListBox1.ColumnCount = 7
   UserForm1.ListBox1.ColumnWidths = _
            "7,0 cm; 3,5 cm; 1,0 cm; 3,0 cm; 1,0 cm; 3,5 cm; 3,0 cm"
   For iIndx = 1 To Verz.Items.Count
      Set objItem = Verz.Items(iIndx)
      With objItem
         UserForm1.ListBox1.AddItem " "
         UserForm1.ListBox1.List(iIndx - 1, 0) = .FirstName _
                                         & " " & .LastName
         If .BusinessAddressPostOfficeBox = "" Then
            UserForm1.ListBox1.List(iIndx - 1, 1) = .BusinessAddressStreet
          Else
            UserForm1.ListBox1.List(iIndx - 1, 1) = .BusinessAddressPostOfficeBox
         End If
         UserForm1.ListBox1.List(iIndx - 1, 2) = .BusinessAddressPostalCode
         UserForm1.ListBox1.List(iIndx - 1, 3) = .BusinessAddressCity
         UserForm1.ListBox1.List(iIndx - 1, 4) = .CustomerID
         UserForm1.ListBox1.List(iIndx - 1, 5) = .AssistantName
         UserForm1.ListBox1.List(iIndx - 1, 6) = .MiddleName
      End With
   Next iIndx
      
   Set objItem = Nothing
   Set olMAPI = Nothing
   
'  die ListBox nach Namen (nach nur einer, der ersten Spalte) sortieren
   
'   listbox_quick_sort 0, 6, UserForm1.ListBox1, 0, UserForm1.ListBox1.ListCount - 1
   
   Application.DisplayAlerts = True
   
   Application.StatusBar = False
              
End Sub


Knut
Bild

Betrifft: AW: Outlook Kontakte auslesen und eintragen
von: Torsten
Geschrieben am: 01.02.2004 15:40:16
Moin,
ich weiß nicht ob ich das hier veröffentlichen kann oder darf.
Versuchen!
nach Flemming Entdecker des Penicillin
Bei Smarttools gibt es genau das was gesucht wird.
Es kann als Zip-Datei kostenlos heruntergeladen werden und eine Erklärung ist auch dabei.
Die bas-Datei und das Formular in bestehendes Project importieren, Zellen oder ähnliches anpassen, Outlook starten, Makro ausführen, Rechnung schreiben, drucken und verschicken, auf die Bank gehen, schauen ob die Moneten schon das sind fertig.
Einfach genial, genial einfach!
Hier der Link: Outlook-To-Excel
Tee! (nach Flemming)
Tschüß
Bild

Beiträge aus den Excel-Beispielen zum Thema " Outlook Kontakte auslesen und eintragen"