VBA-Kontake nach Kategorien auswählen

12/09/2008 - 21:41 von Josef Zins | Report spam
Hallo zusammen

meinen Kontakte sind Kategorien zugeordnet. Dazu habe ich ein
VBA-Programm entwickelt, das mir alle Kontakte einer bestimmten,
ausgewàhlten Kategorie selektiert und zur Auswahl anzeigt.
Soweit funktioniert alles sehr gut.
Problem macht das Ganze dann, wenn der ausgewàhlte Kontaktordner auch
Verteilerlisten enthalt. Ich schaffe es einfach nicht, den damit
verbundenen Fehler vernünftig abzufangen.

Der derzeitge Code:

Dim Folder As MAPIFolder
Dim strFolderPath, strFolder As String
Dim Citem As Outlook.ContactItem
Set Folder = GetFolder(strFolderPath)
If Folder Is Nothing Then
funOutlookOrdnerAuslesen = ""
GoTo Exit_subOutlookOrdnerAuslesen
End If

' >>>>> Problembereich
On Error Resume Next
For Each Citem In Folder.Items
If Citem Is Nothing Then
' If Err.Number = 13 Then
Err.Clear
GoTo Next_Item
End If
On Error GoTo Err_subOutlookOrdnerAuslesen
If Citem.Categories <> "" Then
...
End If
Next_Item:
On Error Resume Next
Next

Das Next wird durch die On Error Resume Next übersprungen, wenn
Verteilerliste gefunden. Das ist natürlich nicht erwünscht, da an sich
der nàchste Eintrag im Kontaktordner angesprungen werden soll.

Kann mir jemand weiterhelfen ?

Bereits vorab danke für die Unterstützung

Grüsse
Josef Zins



Teile dein Wissen mit anderen. Dies ist eine gute Möglichkeit,
Unsterblichkeit zu erlangen (Dalai Lama)
 

Lesen sie die antworten

#1 Peter Marchert
12/09/2008 - 21:53 | Warnen spam
On 12 Sep., 21:41, Josef Zins wrote:
Hallo zusammen



Guten Abend Josef,

meinen Kontakte sind Kategorien zugeordnet. Dazu habe ich ein
VBA-Programm entwickelt, das mir alle Kontakte einer bestimmten,
ausgewàhlten Kategorie selektiert und zur Auswahl anzeigt.
Soweit funktioniert alles sehr gut.
Problem macht das Ganze dann, wenn der ausgewàhlte Kontaktordner auch
Verteilerlisten enthalt. Ich schaffe es einfach nicht, den damit
verbundenen Fehler vernünftig abzufangen.

Der derzeitge Code:

Dim Folder As MAPIFolder
Dim strFolderPath, strFolder As String
Dim Citem As Outlook.ContactItem
     Set Folder = GetFolder(strFolderPath)
     If Folder Is Nothing Then
         funOutlookOrdnerAuslesen = ""
         GoTo Exit_subOutlookOrdnerAuslesen
     End If

     ' >>>>> Problembereich
     On Error Resume Next
     For Each Citem In Folder.Items
         If Citem Is Nothing Then
'        If Err.Number = 13 Then
             Err.Clear
             GoTo Next_Item
         End If
         On Error GoTo Err_subOutlookOrdnerAuslesen
         If Citem.Categories <> "" Then
        ...
         End If
Next_Item:
     On Error Resume Next
     Next

Das Next wird durch die On Error Resume Next übersprungen, wenn
Verteilerliste gefunden. Das ist natürlich nicht erwünscht, da an sich
der nàchste Eintrag im Kontaktordner angesprungen werden soll.

Kann mir jemand weiterhelfen ?



Dieser Code sollte das Problem lösen:

Dim Folder As MAPIFolder
Dim strFolderPath As String
Dim strFolder As String
Dim Citem As Outlook.ContactItem

Set Folder = GetFolder(strFolderPath)
If Folder Is Nothing Then
funOutlookOrdnerAuslesen = ""
GoTo Exit_subOutlookOrdnerAuslesen
End If

For Each Citem In Folder.Items

If Citem.Class = olContact _
And Citem.CATEGORIES <> "" Then
...
End If

Next_Item:

Next

Hinweis: Mit "Dim strFolderPath, strFolder As String" wird
strFolderPath als Variant deklariert - nicht schlimm, sollte man aber
wissen.

Gruß
Peter

Infos, Workshops & Software für
Outlook®: www.outlook-stuff.com

Ähnliche fragen