Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
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
Inhaltsverzeichnis

Emailadressen aus Outlook ablesen

Emailadressen aus Outlook ablesen
VerenaK
Guten Morgen alle zusammen!
Ich habe ein Makro gebastelt, das automatisch Emails verschickt und sich die adressen dazu selber aus Outlook zieht, indem es eine Spalte mit Namen aus einer Exceltabelle ausliest.
Es funktioniert soweit auch, aber bei zwei Feldern hängt es sich auf.
Bei dem einen liegt das Problem darin, dass es zwei Personen mit gleichem NAmen im Outlook gibt, bei dem anderen, daran, dass die betreffende Person keine Emailadresse im Outlook hinterlegt hat.
Jetzt würde ich für diese zwei Fälle gerne eine Ausnahmeregelung in mein Makro schreiben so nach dem Motto:
Sub Ausnahme()
If Worksheets("Offen").Cells(I, 26) = Name der PersonThen
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = Emailadresse der Person            .Subject = "Reminder: Kaizen Zeitung "
.Body = "Guten Tag Herr ...." & vbCrLf & vbCrLf & _
.Display
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%s", True
DoEvents
End With
Set OutApp = Nothing 'CreateObject("Outlook.Application")
Set Nachricht = Nothing 'OutApp.CreateItem(0)
End Sub

mein Problem ist, dass ich nicht weiß an welcher stelle ich diese Ausnahme in mein schon existierendes Makro reinschreiben soll.
kann mir da vielleicht jemand helfen?
der ganze code lautet:
Sub OriginalExcel_Serienmail_via_Outlook_Senden()
Dim OutApp As Object, Mail As Object
Dim I As Integer
Dim Nachricht
Zeile = Worksheets("Offen").Range("B65536").End(xlUp).Row
For I = Zeile To 22 Step -1
If Worksheets("Offen").Cells(I, 26) 

Vielen Dank schonmal für eure Hilfe!
Gruß,
Verena

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Emailadressen aus Outlook ablesen
02.12.2011 23:16:50
dan
Hallo Verena,
hier schicke ich ein Bsp., wie man e-mail Addressen durchgehen kann und feststellen ob welche Addresse mehrmals vorkommt. Aber ist es das was Du brauchst? Ich verstehe nicht ganz was Du aus dem Excel-Sheet ausliesst? Sind es User-Namen oder e-mail Addressen? Am besten lade eine Beisp. Datei mit den Daten hoch. Gruss dan, cz.
'-----------------------------------------------
' add reference to ms-outlook 12.0 type library
'-----------------------------------------------
Option Explicit
Private outlookApplication As Outlook.Application
Private outlookNamespace As Outlook.Namespace
Private mailAddressLists As Outlook.AddressLists
Private mailAddressList As Outlook.AddressList
Private mailAddressEntries As Outlook.AddressEntries
Private mailAddressEntry As Outlook.AddressEntry
Public Sub Main()
On Error GoTo mainError
Set outlookApplication = New Outlook.Application
Set outlookNamespace = outlookApplication.GetNamespace("MAPI")
Set mailAddressLists = outlookNamespace.AddressLists
Call OriginalExcel_Serienmail_via_Outlook_Senden
outlookApplication.Quit
Set outlookApplication = Nothing
Exit Sub
mainError:
If (Not outlookApplication Is Nothing) Then
outlookApplication.Quit
Set outlookApplication = Nothing
End If
End Sub

Private Sub OriginalExcel_Serienmail_via_Outlook_Senden()
Dim mail As Outlook.MailItem
Dim i As Integer, endRow As Integer, address As String
Dim sheetWithEmails As Worksheet
Set sheetWithEmails = Worksheets("Offen")
endRow = sheetWithEmails.Range("B65536").End(xlUp).Row
For i = endRow To 22 Step -1
address = sheetWithEmails.Cells(i, 10).Value 'Adresse
If GetAddressCount(address) > 1 Then
MsgBox "More than one occurence of address: " & address
GoTo nextRow
ElseIf Worksheets("Offen").Cells(i, 26) > 7 Or address = "" Then
GoTo nextRow
End If
Set mail = outlookApplication.CreateItem(0)
With mail
.To = address
.Subject = "Reminder: Kaizen Zeitung "
.Body = "Guten Tag Herr ..." & Cells(i, 10) & vbCrLf & vbCrLf
.Display
End With
Application.Wait (Now + TimeValue("0:00:01"))
SendKeys "%s", True
DoEvents
nextRow:
Next i
End Sub

Private Function GetAddressCount(address As String) As Integer
For Each mailAddressList In mailAddressLists
For Each mailAddressEntry In mailAddressList.AddressEntries
If (VBA.Strings.StrComp(address, mailAddressEntry.address) = 0) Then _
GetAddressCount = GetAddressCount + 1
Next mailAddressEntry
Next mailAddressList
End Function

Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige