Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1552to1556
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
Outlook-Verteiler automatisch verändern
27.04.2017 09:14:36
Sa
Hallo zusammen,
ich habe einen Code erstellt, mit dessen Hilfe ich eine Excel-Datei automatisch in Outlook packe. Der Verteiler wird je nach Zelleninhalt automatisch ausgewählt.
Das Problem hierbei ist, dass manche Personen sich auch selber die Mail schicken, weil sie im Verteiler sind. Jetzt muss jedes mal händisch die eigenen Adresse entfernt werden. Kann man das nicht ins Makro einbauen, dass erkannt wird, von welcher email-Adresse die Nachricht verschickt wird und wenn die mit dem Namen im Verteiler übereinstimmt,dann erst gar nicht in den Verteiler aufnehmen?
Das Makro ist auch sehr langsam. Wie kann man das schneller machen?
Liebe Grüße
Sa
Sub Schaltfläche3243_KlickenSieAuf()
'Variabler Outlookverteiler je Businessteam
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Dim AWS As String
ActiveWorkbook.Save
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
Quelle = ActiveWorkbook.ActiveSheet.Name
Set Nachricht = OutApp.CreateItem(0)
If Sheets("Test request").Range("F2").Value = "Label" Then
With Nachricht
.To = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com"
.CC = "R.K@.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Packaging" Then
With Nachricht
.To = "m@t.com" & "; D@t.com"
.CC = "R.@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Tobacco" Then
With Nachricht
.To = "m@t.com" & "; Td@t.com"
.CC = "Ru@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Technical" Then
With Nachricht
.To = "m@t.com" & "; B@an.com"
.CC = "R@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
End Sub

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Outlook-Verteiler automatisch verändern
27.04.2017 11:12:40
Luschi
Hallo Sa,
das geht so:

Dim vListe As String, xUser As String
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"
'E-Mail-Adresse des Nachrichtenschreibers
xUser = OutApp.Session.currentuser.Address  '--» ooo.ppp@t.com
'diese E-Mail aus Verteilerliste rausschmeißen
vListe = Replace(vListe, xUser, "", 1, -1, vbTextCompare)
With Nachricht
.To = vListe
'usw.

Gruß von Luschi
aus klein-Paris
AW: Outlook-Verteiler automatisch verändern
27.04.2017 12:48:13
dirk
Hallo Luschi,
Ich habe Deine Lösung mal bei mir auf Arbeit ausprobiert, aber sie gibt mir keine email Adresse (mein erster Vorschlag leider auch nicht).
Hier mal was, was bei mir auf Arbeit funktioniert:
Sub GetOwnEmail()
Dim OL, olAllUsers, oExchUser, oentry, myitem As Object
Dim User As String
Set OL = CreateObject("outlook.application")
Set olAllUsers = OL.Session.AddressLists.Item("All Users").AddressEntries
User = OL.Session.CurrentUser.Name
Set oentry = olAllUsers.Item(User)
Set oExchUser = oentry.GetExchangeUser()
MsgBox oExchUser.PrimarySmtpAddress
End Sub
Gruss
Dirk aus Dubai
Anzeige
AW: Outlook-Verteiler automatisch verändern
27.04.2017 14:01:31
Luschi
Hallo Dirk,
die E-Mail-Adresse wird von Outlook bereitgestellt, wenn eine neue E-Mail angelegt wurde; also
Set myItem = OL.CreateItem(0)
'erst jetzt wird die E-Mail-Adresse des Schreiberlings geliefert!
User = OL.Session.CurrentUser.Address
Gruß von Luschi
aus klein-Paris
AW: Outlook-Verteiler automatisch verändern
27.04.2017 14:06:28
dirk
Danke sehr!
Wieder was gelernt.
Grüsse
Dirk aus Dubai
AW: Outlook-Verteiler automatisch verändern
27.04.2017 17:12:21
Sa
Hallo,
irgendwie bekomme ich es nicht nicht. Wie bereits gesagt, bin ich eine blutige Anfängerin.
Könnte ich vielleicht den kompletten Code bekommen, den ich nur noch einfügen muss? Die E-Mail-Adressen kann ich bestimmt ändern :-)
Vielen Dank!
Grüße
Sa
Anzeige
AW: Outlook-Verteiler automatisch verändern
27.04.2017 18:14:29
dirk
Hallo!
Ungetested, sollte aber so funktionieren:
Sub Schaltfläche3243_KlickenSieAuf()
'Variabler Outlookverteiler je Businessteam
Dim Nachricht As Object, OutApp As Object
Dim vListe As String, xUser As String, AWS As String
'als erstes die Verteilerliste belegen. Hier alle möglichen email addressen eintragen
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"
Set OutApp = CreateObject("Outlook.Application")
ActiveWorkbook.Save
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
Quelle = ActiveWorkbook.ActiveSheet.Name
Set Nachricht = OutApp.CreateItem(0)
'E-Mail-Adresse des Nachrichtenschreibers auslesen
xUser = OutApp.Session.currentuser.Address
'diese gefundene E-Mail aus Verteilerliste 'rausschmeißen
vListe = Replace(vListe, xUser, "", 1, -1, vbTextCompare)
If Sheets("Test request").Range("F2").Value = "Label" Then
With Nachricht
.To = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com"
.CC = "R.K@.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Packaging" Then
With Nachricht
.To = "m@t.com" & "; D@t.com"
.CC = "R.@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Tobacco" Then
With Nachricht
.To = "m@t.com" & "; Td@t.com"
.CC = "Ru@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Technical" Then
With Nachricht
.To = "m@t.com" & "; B@an.com"
.CC = "R@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
End Sub
Lass' hören, ob ok.
Gruss
Dirk aus Dubai
Anzeige
AW: Outlook-Verteiler automatisch verändern
27.04.2017 18:19:10
dirk
Hallo!
war etwas zu schnell. Hier angepasst mit Verteilerliste vlist als addressat. Du könntest für die verschiedenen Businessteams auch unterschiedliche Verteilerlisten kreieren, müsstest diese dann aber entsprechend behandeln.
Sub Schaltfläche3243_KlickenSieAuf()
'Variabler Outlookverteiler je Businessteam
Dim Nachricht As Object, OutApp As Object
Dim vListe As String, xUser As String, AWS As String
'als erstes die Verteilerliste belegen. Hier alle möglichen email addressen eintragen
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"
Set OutApp = CreateObject("Outlook.Application")
ActiveWorkbook.Save
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
Quelle = ActiveWorkbook.ActiveSheet.Name
Set Nachricht = OutApp.CreateItem(0)
'E-Mail-Adresse des Nachrichtenschreibers auslesen
xUser = OutApp.Session.currentuser.Address
'diese gefundene E-Mail aus Verteilerliste 'rausschmeißen
vListe = Replace(vListe, xUser, "", 1, -1, vbTextCompare)
If Sheets("Test request").Range("F2").Value = "Label" Then
With Nachricht
.To = vlist
.CC = "R.K@.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Packaging" Then
With Nachricht
.To = vlist
.CC = "R.@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Tobacco" Then
With Nachricht
.To = vlist
.CC = "Ru@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
If Sheets("Test request").Range("F2").Value = "Technical" Then
With Nachricht
.To = vlist
.CC = "R@t.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If
End Sub
Lass' hören, ob ok.
Gruss
Dirk aus Dubai
Anzeige
AW: Outlook-Verteiler automatisch verändern
28.04.2017 07:59:31
Hajo_Zi
Hallo Dirk,
warum offen, Du hast doch einen Vorschlag unterbreitet.
Lasse den Fragesteller entscheiden ob offen.

AW: Outlook-Verteiler automatisch verändern
28.04.2017 08:17:40
Sa
Hallo,
ich freue mich wirklich sehr darüber, dass du mir hilfst :-)
Es funktioniert leider nicht. Es erscheinen jetzt keine Adressen, welche unter "vListe" definiert sind. Nur die Adresse im "cc" erscheint.
Liebe Grüße
Sandra
AW: Outlook-Verteiler automatisch verändern
28.04.2017 09:54:13
dirk
Hallo!
in der Programmzeile mit .To: muss vListe stehen. Da steht nur vlist
Bitte noch das e anhängen, dann sollte es gehen.
Gruss
Dirk aus Dubai
AW: Outlook-Verteiler automatisch verändern
28.04.2017 10:12:56
Sa
Hallo,
leider schicke ich die Mail trotzdem noch an mich selbst, weil ich im Verteiler bin.
Sub Schaltfläche3244_KlickenSieAuf()
'Variabler Outlookverteiler je Businessteam
Dim Nachricht As Object, OutApp As Object
Dim vListe As String, xUser As String, AWS As String
'als erstes die Verteilerliste belegen. Hier alle möglichen email addressen eintragen
vListe = "th@t.com" & ";ICH@" & "; .Ws@t.com" & "; Ts.G@n.com"
Set OutApp = CreateObject("Outlook.Application")
ActiveWorkbook.Save
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
Quelle = ActiveWorkbook.ActiveSheet.Name
Set Nachricht = OutApp.CreateItem(0)
'E-Mail-Adresse des Nachrichtenschreibers auslesen
xUser = OutApp.Session.currentuser.Address
'diese gefundene E-Mail aus Verteilerliste 'rausschmeißen
vListe = Replace(vListe, xUser, "", 1, -1, vbTextCompare)
If Sheets("Test request").Range("F2").Value = "Label" Then
With Nachricht
.To = vListe
.CC = "p@.com"
.Subject = "Test request" & " " & Range("F2") & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Else
End If

Anzeige
AW: Outlook-Verteiler automatisch verändern
28.04.2017 10:33:27
dirk
Hallo nochmal,
hier mal etwas optimiert und mit der möglichkeit, unterschiedliche Verteilerlisten pro business team zu generieren.
Sub Schaltfläche3243_KlickenSieAuf()
'Variabler Outlookverteiler je Businessteam
Dim Nachricht As Object, OutApp As Object
Dim vListe As String, vListeCC As String, xUser As String, AWS As String, MyCase As String
Dim olAllUsers, oExchUser, oEntry As Object
'als erstes die Verteilerliste belegen. Hier alle möglichen email addressen eintragen
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"
Set OutApp = CreateObject("Outlook.Application")
ActiveWorkbook.Save
'als erstes feststellen, welches Businessteam angeschrieben werden soll
MyCase = Sheets("Test request").Range("F2").Value
Select Case MyCase
Case "Label"
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"  'Jedes  _
Businessteam mit eigener Verteilerliste
vListeCC = "L@t.com"
Case "Packaging"
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"
vListeCC = "P@t.com"
Case "Tobacco"
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"
vListeCC = "To@t.com"
Case "Technical"
vListe = "m.rh@t.com" & "; S.S@t.com" & "; K.W@t.com" & "; ooo.ppp@t.com"
vListeCC = "Te@t.com"
Case Else
'no action, skip
MsgBox "Kein Businessteam gefunden"
GoTo Ende
End Select
'Aktive Arbeitsmappe wird als Mail gesendet
AWS = ThisWorkbook.FullName
Quelle = ActiveWorkbook.ActiveSheet.Name
Set Nachricht = OutApp.CreateItem(0)
'E-Mail-Adresse des Nachrichtenschreibers auslesen
Set olAllUsers = OutApp.Session.AddressLists.Item("All Users").AddressEntries
xUser = OutApp.Session.CurrentUser.Name
Set oEntry = olAllUsers.Item(xUser)
Set oExchUser = oEntry.GetExchangeUser()
xUser = oExchUser.PrimarySmtpAddress
'diese gefundene E-Mail aus Verteilerliste 'rausschmeißen
vListe = Replace(vListe, xUser, "", 1, -1, vbTextCompare)
With Nachricht
.To = vListe
.CC = vListeCC
.Subject = "Test request" & " " & MyCase & ":" & " " & Range("D10").Value
.attachments.Add AWS
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'Mail.Send
End With
Exit Sub
Ende:
'hier könnte noch etwas zur Fehlerbehandlung erfolgen
End Sub

Gruss
Dirk aus Dubai
Anzeige
AW: Outlook-Verteiler automatisch verändern
28.04.2017 14:05:33
Sa
Hallo Dirk,
mit diesem Code erhalte ich den Laufzeitfehler" '-2147221233 (8004010f): Der Vorgang konnte nicht ausgeführt werden. Ein Objekt wurde nicht gefunden." für "Set olAllUsers = OutApp.Session.AddressLists.Item("All Users").AddressEntries ". Outlook wird nicht mal geöffnet.
Was muss denn da geändert werden? Ist bestimmt eine Kleinigkeit.
Liebe Grüße
Sandra
AW: Outlook-Verteiler automatisch verändern
28.04.2017 15:30:45
dirk
Hallo!
Normalerweise sollte Dein Outlook schon offen sein, da vorher ja schon eine session geöffnet wurde, bevor das Workbook abgespeichert wurde.
Das Kommando sollte eigentlich die komplette Adressliste von Outlook holen, um darin dann den Usernamen zu suchen und die dazugehörige SMTP-emailadresse auszulesen.
Kannst Du im VBA editor das Makro mal manuell schritt für Schritt abarbeiten und im Locals-Fenster schauen, ob die entsprechenden Objecte angelegt werden bzw entsprechende Inhalte haben?
Gruss
Dirk aus Dubai
Anzeige
AW: Outlook-Verteiler automatisch verändern
27.04.2017 11:21:33
dirk
Hallo!
Du könntest den aktuellen outlook exchange server user abfragen und Diesen mit dem Verteiler vergleichen und bei Übereinstimmung eliminieren.
Den User bekommst Du mit folgendem code.
Da Du OutApp schon definiert hast, sollte diese Abfrage in deinem Modul funktionieren.
MsgBox OutApp.Session.CurrentUser
Lass' hören, ob das weitergeholfen hat.
Gruss
Dirk aus Dubai

237 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige