Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
428to432
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
428to432
428to432
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Outlook

Outlook
18.05.2004 14:40:45
Kerstin
Einen schönen Tag,
ich habe ein Makro gefunden, dass die Daten aus den Kontakte im Outlook ausliesst. Allerdings ist es mal wieder nicht so einfach wie gedacht. Die Kollegen haben sich teilweise Unterordner angelegt.
Wie kann ich das Makro nun verändern, sodass automatisch der Ordner Kontakte mit all seinen Unterordnern ausgelesen wird.
Hier das gefundene Makro:

Sub OutlookContact()
Dim objOLApp As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
Dim objContItem As Object
Dim i As Integer
Set objOLApp = CreateObject("Outlook.Application")
Set objNameSpace = GetNamespace("MAPI")
i = 1
Worksheets.Add
For Each objContItem In objNameSpace. _
GetDefaultFolder(olFolderContacts). _
Items
If objContItem.Class = olContact Then
' Vorname und Nachname
Cells(i, 1) = objContItem.FirstName & " " & _
objContItem.LastName
' E-Mail-Adresse 1
Cells(i, 2) = objContItem.Email1Address
' Geschäftsadresse
Cells(i, 3) = objContItem.BusinessAddress
' Telefonnumer Geschäft
Cells(i, 4) = objContItem.BusinessTelephoneNumber
' Telefonnummer privat
Cells(i, 5) = objContItem.HomeTelephoneNumber
' Ort privat
Cells(i, 6) = objContItem.HomeAddressCity
' Land privat
Cells(i, 7) = objContItem.HomeAddressCountry
Else
Cells(i, 1) = "Verteilerliste: " & objContItem.DLName
Cells(i, 1).Interior.ColorIndex = 15
End If
i = i + 1
Next objContItem
' Spaltenbreite automatisch anpassen
Columns("A:G").AutoFit
Set objContItem = Nothing
Set objNameSpace = Nothing
End Sub

Vielen Dank.
Gruss Kerstin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook
18.05.2004 16:15:09
FrankTheFox
Hallo,
ich habe mir erlaubt es etwas umzuschreiben
Option Explicit
Dim i As Integer

Sub LookInFolder(ByVal CurrentFolder As MAPIFolder)
Dim objContItem As Object
For Each objContItem In CurrentFolder. _
Items
If objContItem.Class = olContact Then
' Vorname und Nachname
Cells(i, 1) = objContItem.FirstName & " " & _
objContItem.LastName
' E-Mail-Adresse 1
Cells(i, 2) = objContItem.Email1Address
' Geschäftsadresse
Cells(i, 3) = objContItem.BusinessAddress
' Telefonnumer Geschäft
Cells(i, 4) = objContItem.BusinessTelephoneNumber
' Telefonnummer privat
Cells(i, 5) = objContItem.HomeTelephoneNumber
' Ort privat
Cells(i, 6) = objContItem.HomeAddressCity
' Land privat
Cells(i, 7) = objContItem.HomeAddressCountry
Else
Cells(i, 1) = "Verteilerliste: " & objContItem.DLName
Cells(i, 1).Interior.ColorIndex = 15
End If
i = i + 1
Next
' Spaltenbreite automatisch anpassen
Columns("A:G").AutoFit
Set objContItem = Nothing
End Sub


Sub OutlookContact()
Set objOLApp = CreateObject("Outlook.Application")
Set objNameSpace = GetNamespace("MAPI")
i = 1
Worksheets.Add
Set CurrentFolder = Outlook.GetNamespace("MAPI").GetDefaultFolder(olFolderContacts)
LookInFolder CurrentFolder
For Each SubFolder In CurrentFolder.Folders
LookInFolder SubFolder
Next
Set CurrentFolder = Nothing
End Sub

Der Trick liegt im Subfolder Objekt
Gruss Frank
Anzeige
AW: Outlook
Kerstin
Hallo Frank,
vielen Dank für Deine Antwort, aber ganz klar ist mir dass noch nicht. Er bemängelt den Current Folder.
Hast Du eine Idee warum?
Gruss
Kerstin
AW: Outlook
18.05.2004 16:38:18
FrankTheFox
Hallo,
tja ich vergass CurrentFolder zu definieren.
Kein Object also auch kein CurrentFolder. Ich habe es jetzt geändert.
Sieht von den Objekten aus wie vorher. Nun musses aber laufen.
Option Explicit
Dim i As Integer
Dim objOLApp As Outlook.Application
Dim objNameSpace As Outlook.NameSpace
Dim CurrentFolder As MAPIFolder

Sub LookInFolder(ByVal CurrentFolder As MAPIFolder)
Dim objContItem As Object
For Each objContItem In CurrentFolder. _
Items
If objContItem.Class = olContact Then
' Vorname und Nachname
Cells(i, 1) = objContItem.FirstName & " " & _
objContItem.LastName
' E-Mail-Adresse 1
Cells(i, 2) = objContItem.Email1Address
' Geschäftsadresse
Cells(i, 3) = objContItem.BusinessAddress
' Telefonnumer Geschäft
Cells(i, 4) = objContItem.BusinessTelephoneNumber
' Telefonnummer privat
Cells(i, 5) = objContItem.HomeTelephoneNumber
' Ort privat
Cells(i, 6) = objContItem.HomeAddressCity
' Land privat
Cells(i, 7) = objContItem.HomeAddressCountry
Else
Cells(i, 1) = "Verteilerliste: " & objContItem.DLName
Cells(i, 1).Interior.ColorIndex = 15
End If
i = i + 1
Next
' Spaltenbreite automatisch anpassen
Columns("A:G").AutoFit
Set objContItem = Nothing
End Sub


Sub OutlookContact()
Dim Subfolder As Object
Set objOLApp = CreateObject("Outlook.Application")
Set objNameSpace = getnamespace("MAPI")
i = 1
Worksheets.Add
Set CurrentFolder = objNameSpace.GetDefaultFolder(olFolderContacts)
LookInFolder CurrentFolder
For Each Subfolder In CurrentFolder.Folders
LookInFolder Subfolder
Next
Set  objOLApp= Nothing
Set objNameSpace = Nothing
Set  CurrentFolder = Nothing
End Sub

mfg Frank
Anzeige
AW: Outlook
19.05.2004 07:46:53
Kerstin
Hallo Frank,
super klasse und vielen Dank. Es funktioniert. Hatte gestern einfach keine Zeit mehr, deswegen heute die kleine Rückmeldung
Gruss
Kerstin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige