Discussion:
Exceltabelle nach Outlook-Verteilerliste via VBA
(zu alt für eine Antwort)
Claudius Schulz
2005-04-06 07:29:34 UTC
Permalink
Hallo NG, [Win XP, Office XP]

Ich habe ca. 300 Email-Adressen in einer Exceltabelle.

Frage:
Wie kann ich via VBA in Excel eine Outlook-Verteilerliste aus diesen Emails
generieren?

Wenn jemand eine Lösung über Word oder Outlook hat, würde das für den Anfang
auch schon mal helfen.
Da diese Aktion öfter vorkommt, möchte ich dies nicht manuell erledigen.

Gruß Claudius
Klaus Kammann
2005-04-06 07:35:22 UTC
Permalink
Post by Claudius Schulz
Hallo NG, [Win XP, Office XP]
Ich habe ca. 300 Email-Adressen in einer Exceltabelle.
Wie kann ich via VBA in Excel eine Outlook-Verteilerliste aus diesen
Emails generieren?
Hallo Claudius,

möchtest du eine Verteilerliste in Outlook anlegen oder allen Personen aus
der Excelliste eine E-Mail senden?

Gruß

Klaus
Claudius Schulz
2005-04-06 07:44:37 UTC
Permalink
Hallo Klaus,
Post by Klaus Kammann
möchtest du eine Verteilerliste in Outlook anlegen oder allen Personen aus
der Excelliste eine E-Mail senden?
ich möchte eine Verteilerliste in Outlook anlegen!

bye Claudius
Klaus Kammann
2005-04-06 08:15:34 UTC
Permalink
Post by Claudius Schulz
Hallo Klaus,
Post by Klaus Kammann
möchtest du eine Verteilerliste in Outlook anlegen oder allen Personen
aus der Excelliste eine E-Mail senden?
ich möchte eine Verteilerliste in Outlook anlegen!
Hi,

folgendes sollte dir einen Ansatz liefern(allerdings nur unter Office 2003
getestet). Mußt halt nur noch eine Schleife durch deine Excelliste einbauen.

Private Sub createVerteiler()
Dim myOlApp As New Outlook.Application
Dim myNameSpace As Outlook.Namespace
Dim myDistList As Outlook.DistListItem
Dim myTempItem As Outlook.MailItem
Dim myRecipients As Outlook.Recipients
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myDistList = myOlApp.CreateItem(olDistributionListItem)
Set myTempItem = myOlApp.CreateItem(olMailItem)
Set myRecipients = myTempItem.Recipients
myDistList.DLName = InputBox("Name der Verteilerliste eingeben")
myRecipients.Add myNameSpace.CurrentUser.Name
myRecipients.Add "***@ttt.de"
myRecipients.ResolveAll
myDistList.AddMembers myRecipients
myDistList.Save
myDistList.Display

End Sub

Gruß

Klaus
Claudius Schulz
2005-04-06 09:31:42 UTC
Permalink
Hallo Klaus,

Danke, hat super funktioniert:

Ich habe Dein myRecipients.Add "***@ttt.de" durch folgendes
ersetzt und alles lief.

Range("A2").Select
Do Until ActiveCell.Value = ""
myRecipients.Add ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop

Hast du eventuell noch die Möglichkeit einen Unterordner in Kontakte zu
erstellen und den Verteiler dort abzulegen?

Gruß Claudius
Klaus Kammann
2005-04-06 15:21:53 UTC
Permalink
Post by Claudius Schulz
Hast du eventuell noch die Möglichkeit einen Unterordner in Kontakte zu
erstellen und den Verteiler dort abzulegen?
Hallo Claudius ,

aus der Outlookhilfe:

Sub CreatePersonalContacts()
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myNewFolder As Outlook.MAPIFolder
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderContacts)
Set myNewFolder = myFolder.Folders.Add("My Personal Contacts")
End Sub

Gruß

Klaus
Claudius Schulz
2005-04-06 16:22:20 UTC
Permalink
Hallo Klaus,

leider tue ich mich schwer mit dem Outlook-VBA.
Könntest Du mir noch beim Speicher bzw. Erstellungs-Befehl helfen?
Den Ordner habe ich angelegt! Wie bekomme ich aber die Verteilerliste im
neuen Ordner gespeichert?

Hier mein Makro:

Sub Verteilerliste_Erstellen()
Ordner ' Funktion Verteilerlisten-Ordner wird
erstellt
Dim myOlApp As New Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myDistList As Outlook.DistListItem
Dim myTempItem As Outlook.MailItem
Dim myRecipients As Outlook.Recipients
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myDistList = myOlApp.CreateItem(olDistributionListItem)
Set myTempItem = myOlApp.CreateItem(olMailItem)
Set myRecipients = myTempItem.Recipients
myDistList.DLName = Range("A1") & " - Stand: " & Format((Now),
"dd.MM.yyyy (hh:mm)")
' InputBox("Name der Verteilerliste eingeben")
myRecipients.Add myNamespace.CurrentUser.Name

Range("A2").Select
Do Until ActiveCell.Value = ""
myRecipients.Add ActiveCell.Value
ActiveCell.Offset(1, 0).Select
Loop

myRecipients.ResolveAll
myDistList.AddMembers myRecipients
myDistList.Save
myDistList.Display
Range("A1").Select
End Sub

Function Ordner()
Dim myOlApp As Outlook.Application
Dim myNamespace As Outlook.Namespace
Dim myFolder As Outlook.MAPIFolder
Dim myNewFolder As Outlook.MAPIFolder
Set myOlApp = CreateObject("Outlook.Application")
Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderContacts)
On Error Resume Next
Set myNewFolder = myFolder.Folders.Add("Verteilerlisten")
End Function


Gruß Claudius
Klaus Kammann
2005-04-06 18:34:12 UTC
Permalink
Post by Claudius Schulz
Hallo Klaus,
leider tue ich mich schwer mit dem Outlook-VBA.
Könntest Du mir noch beim Speicher bzw. Erstellungs-Befehl helfen?
Den Ordner habe ich angelegt! Wie bekomme ich aber die Verteilerliste im
neuen Ordner gespeichert?
Hallo Claudius,

nur so auf die schnelle vor der Champions-League(Den Excelteil wieder
entsprechend einbauen:

Sub Verteilerliste_Erstellen()
Dim myOlApp As New Outlook.Application
Dim myNamespace As Outlook.NameSpace
Dim myFolder As Outlook.MAPIFolder
Dim myNewFolder As Outlook.MAPIFolder
Dim myDistList As Outlook.DistListItem
Dim myTempItem As Outlook.MailItem
Dim myRecipients As Outlook.Recipients

Set myNamespace = myOlApp.GetNamespace("MAPI")
Set myTempItem = myOlApp.CreateItem(olMailItem)
Set myRecipients = myTempItem.Recipients
Set myFolder = myNamespace.GetDefaultFolder(olFolderContacts)

On Error Resume Next
'Falls noch nicht vorhanden-Ordner erstellen sonst weiter im Text
Set myNewFolder = myFolder.Folders("Verteilerlisten")
If myNewFolder Is Nothing Then
myFolder.Folders.Add ("Verteilerlisten")
End If

Set myNewFolder = myFolder.Folders("Verteilerlisten")
Set myDistList =
myFolder.Folders("Verteilerlisten").Items.Add(olDistributionListItem)

myRecipients.ResolveAll
myDistList.AddMembers myRecipients
myDistList.Save
myDistList.Display

End Sub

Gruß

Klaus
Claudius Schulz
2005-04-06 19:05:56 UTC
Permalink
Hallo Klaus,

Ein großes Lob. Das funktioniert Prima

Leider komme ich von Einem ins Andere. Jetzt ist der Ordner Verteilerlisten
in Outlook nicht im "Adreßbuch" sichtbar. (Wenn ich eine Email Schreibe)

Hast du auch noch eine Idee für das Ordnerattribut (in den
Ordnererweiterungen)
Diesen Ordner als Adreßbuch anzeigen

Danke im voraus
Bye Claudius
Klaus Kammann
2005-04-07 16:02:59 UTC
Permalink
Post by Claudius Schulz
Hallo Klaus,
Ein großes Lob. Das funktioniert Prima
Leider komme ich von Einem ins Andere. Jetzt ist der Ordner
Verteilerlisten in Outlook nicht im "Adreßbuch" sichtbar. (Wenn ich eine
Email Schreibe)
Hast du auch noch eine Idee für das Ordnerattribut (in den
Ordnererweiterungen)
Diesen Ordner als Adreßbuch anzeigen
Hallo Stammkunde ;-)

Im Outlook-Objekt-Modell gibt es dafür(glaube ich) keine Eigenschaft, die
man einstellen kann.
Aber poste die Frage doch einmal in eine Outlookgruppe. Egebnis würde mich
auch interessieren.

Gruß

Klaus

Loading...