Sie möchten einen Bericht aus einer Exceltabelle erstellen und anschließend per Email versenden? Auch der Versand einer kompletten Exceldatei oder eines bestimmten Tabellenblatts ist relativ einfach mit VBA realisierbar. Mit dem nachfolgenden Musterbeispiel zeige ich Ihnen wie Sie mit Hilfe eines VBA-Codes eine Email versenden können. Voraussetzung für die Nutzung ist, Sie haben neben Microsoft Excel auch das Programm Microsoft Outlook installiert und darin ein Emailkonto eingerichtet.
Teil 1: Per VBA-Makro eine Email mit Outlook versenden
Teil 2: Mit VBA Email versenden ohne Outlook
Weitere Voraussetzung, im VB-Editor muss in der Exceldatei eine der beiden Objektbibliotheken aktiviert sein:
- Microsoft Outlook 15.0 Object Library
- Microsoft 15.0 Object Library
Die Nummer 15.0 steht hierbei für die genutzte Office-Version (15.0 entspricht z.B. Office 2013).
Nun zum eigentlichen VBA-Code. Hier gibt es einige Möglichkeiten den Versand individuell zu gestalten. In den beiden folgenden Makros wird die Email erstellt und zunächst angezeigt (1. VBA-Code), bzw. automatisch versendet (2. VBA-Code):
Sub EmailManuellAbsenden() Dim objOutlook As Object Dim objMail As Object Set objOutlook = CreateObject("Outlook.Application") Set objMail = objOutlook.CreateItem(0) With objMail .To = "deinname@deinedomain.de" .Subject = "Betreff" .Body = "Ihre Nachricht." .Display 'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User! End With End Sub
Das zweite Makro unterscheidet sich nur aufgrund des Befehls “Send”, statt “Display”.
Sub EmailDirektSenden() Dim objOutlook As Object Dim objMail As Object Set objOutlook = CreateObject("Outlook.Application") Set objMail = objOutlook.CreateItem(0) With objMail .To = "deinname@deinedomain.de" .Subject = "Betreff" .Body = "Ihre Nachricht." .Send 'Sendet die Email automatisch End With End Sub
Natürlich stehen auch alle weitere Optionen für den Versand von Emails in VBA-Lösungen zur Verfügung. So können Sie die Email auch in Kopie oder Blind-Kopie an weitere Adressaten versenden, oder der Email Dateianhänge beifügen.
In den obigen Beispielen können Sie die zusätzlichen Optionen bei Bedarf über den jeweils zusätzlichen VBA Code hinzufügen:
.CC = "deinname@deinedomain.de"
Sendet die Email in Kopie an die angegebene Emailadresse.
.BCC = "deinname@deinedomain.de"
Sendet die Email in Blind-Kopie an die angegebene Emaildadresse.
.Attachments.Add "C:/Beispiel.xlsx"
Hängt an die Email die angegebene Datei an.
Der Versand an mehrere Adressaten innerhalb von To, CC oder BCC erfolgt durch ein Semikolon als Trennzeichen.
.To = "deinname@deinedomain.de; zweiteEmailadresse@domain.de"
Mehrere Anhänge fügen Sie am einfachsten über mehrere Zeilen ein.
.Attachments.Add "C:/Beispiel_1.xlsx" .Attachments.Add "C:/Beispiel_2.xlsx"
Teil 1: Per VBA-Makro eine Email mit Outlook versenden
Teil 2: Mit VBA Email versenden ohne Outlook
der Ansatz gefällt mir sehr gut. Können Sie sich ein kleines Programm, welches ein oder mehrere PDF’s, welche mit der Email-Adresse des Empfängers als Dateinamen in einem Folder liegen (z.b: p.noindl@npinform.pdf,…) automatisiert an die Empfänger sendet, vorstellen? Ideal wäre eine kleine Exe-Datei, in der man dann auch noch einen Betreff und einen Begleittext eintragen könnte (vor Versand). Ich würde dafür auch bezahlen.
@Noindl Peter: Das wäre möglich und ist gar nicht so schwer. Haben sie eine Email mit der man Sie erreichen kann?
Hallo,
gibt es auch eine Möglichkeit bei der ich auch einfach nur pdf datein aus einem Excel scheet verschicken kann ?
Liebe Grüße
lensko
Super, läuft alles gut.
Aber, ich erhalte keine Kopie der Mail unter Gesendete. Gibt’s hier noch einen Trick?
Herzlichen Dank für die Antwort!
@Adler: Eine Kopie der Email sollte eigentlich in Outlook gespeichert werden. Werden mehrere Emailadressen in Outlook verwaltet, wird es im Ordner der Standard-Emailadresse gespeichert. Sollte das nicht funktionieren, liegt es vermutlich an der Konfiguration von Outlook. Alternativ kann eine Textdatei der gesendeten Email erzeugt und gespeichert werden. Dafür wäre folgende Anpassung erforderlich:
.SaveAs “C:\MeineMail.txt”, 0
.Send
Superherzlichen Dank für die Rückmeldung
klappt so wunderbar. (mit .save as). Ist etwas unbequemer als mit der auto. Funktion speichern unter gesendet, aber die geht bei mir nicht.
Herzlichen Dank
Adler
im Nachricht As Object, OutApp As Object
Set OutApp = CreateObject(“Outlook.Application”)
Dim AWS As String
‘Aktive Arbeitsmappe wird als Mail gesendet
‘AWS = ThisWorkbook.FullName
InitializeOutlook = True
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = “Heinz.Mustermann@Musterdorf.com”
.Subject = “Phase ot Process” & Date
‘.attachments.Add AWS
.Body = “Sehr geehrter Bearbeiter,” & vbCrLf & “” & vbCrLf & “anbei erhalten Sie eine weitere Artikelnummer zur direkten Weiterbearbeitung im Rahmen unsers Auslaufprozesses.” & vbCrLf & “” & vbCrLf & “Bitte um entsprechende Bearbeitung!” & vbCrLf & “” & vbCrLf & “Im Voraus besten Dank für Ihre Mühe.”
.cc = “erna.mustermann@musterdorf.com”
.Attachments.Add ThisWorkbook.FullName
.Send
‘Hier wird die Mail gleich in den Postausgang gelegt
‘Mail.send
End With
Set OutApp = Nothing
Set Nachricht = Nothing
Das funktioniert bei mir nicht. Ich bin Anfänger und erhalte nur Fehlermeldungen 🙁
@Azalee: Ich vermute mal, dass die benötigte Objektbibliothek nicht aktiviert wurde. Ohne die geht es natürlich nicht.
Ich würde beim email-Versand mit der vorgeschlagenen Methode gerne noch eine Erfolgskontrolle einbauen, als Rückmeldung, dass die email von Outlook auch tatsächlich versendet wurde. Das geht zwar auch händisch über die “Gesendete Objekte” in Outlook, aber ich würde es vorziehen, wenn Excel (oder Word) einfach per MsgBox eine Bestätigung ausgeben würde. Wie ließe sich das realisieren? Danke für Tipps!
Bei mir klappt das Attachment nicht. Es erscheint immer Laufzeitfehler, was mache ich falsch, beim Debuggen, habe ich alles überprüft der Pfad ist richtig und der Dateinname/-pfad auch.
Wie kann ein Zwischenschritt eingebaut werden, welche mir erlaubt, eine Email Adresse vor der Erstellung der Mail einzutippen. Sollte wie eine Dialogbox aufklappen (für to, CC, Betreff auch möglich)
Hallo, ich würde gerne die Datei, in der ich das Makro habe, als Anhang per Mail versenden.
D.h. die Datei ist noch nicht mal unbedingt unter einem Pfad gespeichert (z.B. “C:/Beispiel_1.xlsx” ) bzw. nicht für jeden User unter einem einheitlichen Pfad.
Geht das?
Quasi ein “send me” 🙂
Vielen Dank schon jetzt für Antworten.
LG
Nina
Hallo,
ich würde gerne einen Teil der Tabelle aus dem Excel Dokument in die Mail einfügen, wie könnte das denn funktionieren?
Hallo,
vielen Dank, das Makro hat mir sehr geholfen.
Gibt es die Möglichkeit, wenn man mehrere Email-Adressen in Outlook eingerichtet hat, zu wählen, von welcher versendet wird? Intuitiv hätte ich zu “.from” gegriffen, aber das nimmt er nicht…
Vielen Dank vorab.
Viele Grüße
Michael
Hi Michael,
dazu musst du in dem Block in dem du “.To” und “.Subject” und co eingibst folgendes tippen:
.SentOnBehalfOfName = “mustermann@musterhaus.com”
Grüße
Hallo,
die obrige Lösung funktionieren sehr gut, ich möchte aber noch ein zweiten boutten machen wo auch eine andere Datei angehangen wird und ein anderer Verteiler mit in begriffen ist. Ich habe jetzt schon mehreres Versucht komme aber nicht auf die Lösung, könnte es mir einer Verraten 🙂 ?
Danke.
Hallo,
Kann eine Mail auch aus eienm Funktionspostfach (von) gesendet werden?
Um die erstellte E-Mail anzuzeigen und nicht zu versenden, muss die Zeile .Display auskommentiert und die Zeile .Send kommentiert werden. Denn der Befehl .Display zeigt Dir die E-Mail in einem Outlook Fenster an, so dass Du nochmal kontrollieren kannst, bevor Du die E-Mail versenden mochtest. Uber die Zeile .Attachment kannst Du Anhange an die E-Mail hangen. Das konnen Bilder oder auch andere Dokumente sein. Dazu musst Du nur den entsprechenden Pfad zu dem Dokument angeben. Mit der Zeile .Send wei?t an, dass die E-Mail sofort und direkt uber Outlook versendet.
Guten Morgen,
ich habe obigen Code umgesetzt und bekomme auch die Email erzeugt, aber nicht automatisch versendet.
Ich setze die VBA-Befehle in QlikView ein und das klappt in der Regel auch ganz gut, nicht aber hier mit dem automatischen Versand:
sub MailSend (tohim, cchim, betr, txt, file1, a2, file2, a3, file3, file4, file5)
Set MyOutApp = CreateObject(“Outlook.Application”)
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = tohim
.CC = cchim
.Subject = betr
.body = txt
.Attachments.add file1
‘.Display ‘ausgeblendet
.Send
End With
Set MyOutApp = Nothing
Set MyMessage = Nothing
end sub
Irgendjemand eine Idee was ich falsch mache?
danke J.
Hallo,
es könnte vielleicht an dieser Zeile liegen:
‚.Display ‚ausgeblendet
Ich hatte das Problem, dass meine Mails nach einem Office-Update nicht mehr hinaus gingen, bis ich dann in meiner Verzweiflung
.Display
eingefügt hatte. Jetzt springt Excel zwar immer zu Outlook und wieder zurück, was nicht sehr elegant ist, wenn man -zig Mails versendet, aber zumindest funktioniert es.
VBA-Makro für Versand von E-Mails über unterschiedliche Outlook-Versionen
Eine Excel-Datei soll zur Bearbeitung über ein VBA-Marko per E-Mail von Person A zu B, von B zu C und von C wieder an A gesendet werden, die mit unterschiedlichen Office-Versionen arbeiten. Kann A (also ich) im Makro schon vorab unterschiedliche Objektbibliotheken aktivieren, um verschiedene Outlook-Versionen zu integrieren oder müssten das B und C selbst vornehmen, weil nur sie den unter “Extras/Verweise” die für sie passende Bibliotheksversion aktivieren können? Ich finde dort nur die 16.0 für meine Office-Version.
Bin für jeden Tipp dankbar.
Gerd
PS.Ich glaube immer noch, dass VBA im Drogenrausch konzipiert wurde. Gut, dass man im Netz klare Hilfestellungen wie hier finden. Herzlichen Dank dafür und an alle anderen, die ihr Wissen im Netz zur Verfügung stellen.
@Gerd: Das funktioniert leider nicht. Es kann immer nur eine Bibliothek mit identischen Funktionen eingebunden werden. Die Bibliotheken einzelner Office Versionen unterscheiden sich meistens nur in wenigen Funktionen. Bei der Nutzung in einer anderen Office Version ist deshalb immer die Bibliothek auszutauschen. Das gilt bei einigen Funktionen auch beim Wechsel innerhalb einer Version, wenn auf den Rechnern abweichend die 32bit / 64bit Version nutzen.
Ich würde das Problem deshalb anders lösen. Das Makro könnte einfach ein Tabellenblatt mit den Informationen speichern, dass dann durch das Makro beim User B in das Tool eingelesen wird. Es wird dann nicht die Datei mit den Makros, sondern nur das Tabellenblatt mit den Informationen ausgetauscht. Wenn man das Ganze noch professioneller aufstellen wollte, würde man kein Tabellenblatt erzeugen, sondern z.B. eine XML erstellen und die ggf. direkt auf dem Webserver ablegen. Aber das kommt natürlich darauf an, ob es sich um einheitlich aufgebaute Informationen handelt.
Hallo, Marco,
mir ist gerade aufgefallen, dass ich Dir, wie’s aussieht, noch gar nicht für Deine Antwort gedankt habe. Das tut mir wirklich leid und ist mir ziemlich peinlich – im stetigen Wechsel. Mit ordentlicher Verspätung also herzlichen Dank.
Gerd
Hallo,
ich bin recht am Anfang was VBA und Excel angeht aber würde mir gerne mit dem ein oder anderem Befehl das Leben erleichtern.
Ist es möglich das die in der erstellten Mail die jeweiligen “Tagesdaten” übernommen werden? Zum Beispiel,
06.09.2020 Spalte A, Zeile 1 = 123abc
07.09.2020 Spalte A, Zeile 2 = 456def usw…
Das mit klick auf den Button (immer am jeweiligen Tag) “Create Mail” der gewünschte Text steht und bei “Ergebnis” 06.09.2020 – 123abc
Danke Thomas!
Hallo zusammen,
ich hab absolut keine Ahnung von VBA und versuche mir im Internet zu helfen
mit o.g. Befehl:
”
Sub EmailManuellAbsenden()
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject(“Outlook.Application”)
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = “deinname@deinedomain.de”
.Subject = “Betreff”
.Body = “Ihre Nachricht.”
.Display ‘Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend manuell vom User!
End With
End Sub
”
öffnet sich Outlook bei mir und die E-Mail Adresse wird eingefügt… jedoch wird meine Datei nicht als Anhang dran gehängt.
Meine Excel Datei heißt “Test”…. was muss ich in den Befehl noch einfügen, damit die Excel Datei angehängt wird.
@Wictor: Der Beitrag geht noch weiter. Weiter unten wird beschrieben wie Dateianhänge angehängt werden können.
In den obigen Beispielen können Sie die zusätzlichen Optionen bei Bedarf über den jeweils zusätzlichen VBA Code hinzufügen:
…
.Attachments.Add “C:/Beispiel.xlsx”
Hängt an die Email die angegebene Datei an.
…
Hallo Marco,
das habe ich gesehen, aber ich will die aktuelle Datei in der ich Arbeite anhängen?
Geht das auch ohne den PFAD anzugeben? Ich will die Datei womöglich “Standortfrei” nutzen und gleich verschicken können.
Hallo,
stehe ganz schön auf dem Schlauch. Würde gern drei Zeilen Nachricht schreiben, bei .Body = “Ihre Nachricht.”
nimmt nur die erste Zeile.
Was muss ich machen um den Zeilenumbruch zu bekomme?
Danke Joggel
Hallo zusammen,
bin in den ersten Schritten mit VBA, nun eine Frage.
Bei der Nachricht .Body = „Ihre Nachricht.“ würde ich gern drei Zeilen schreiben.
das funktioniert leider nicht so wie ich es mir dachte.
Bitte daher um Hilfe.
Vielen Dank schon mal im Voraus
Joggel
@Joggel: Dafür kann man die Konstante vbCrLf verwenden. https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/miscellaneous-constants
Der VBA Code sieht dann z.B. so aus:
.Body = "Ihre Nachricht." & vbCrLf & "Zeile 2"
Hallo zusammen,
die Ideen und die Hilfen hier sind schon fantastisch.
Jetzt nochmal zwei Fragen:
1. Ich möchte, wie oben erklärt, eine E-Mail aus Excel erzeugen. Aber ich habe in Bcc mehrere E-Mail Adressen, die in einer Spalte, z.B. “B”, untereinander stehen.
Wie kann ich diese in die E-Mail einfügen?
2. Ich möchte in dem E-Mail Text Hyperlinks erstellen, mit denen der Empfänger automatisch auf die E-Mail antworten kann.
Geht das, was ich da vor habe?
@Humpel: Auf Emails kann man grds. über “Antworten” eine Antwort senden. Daher verstehe ich nicht, warum ein Link dafür erstellt werden soll. Links in Emails sollten aus Sicherheitsgründen nicht geklickt werden. Das macht also nicht wirklich Sinn. Dazu noch Emails in BCC. Für Massenmails ist die Funktion aus gutem Grund (“Spam”) nicht geeignet. Aus welchem Grund sollen die Emails erstellt werden?
@Marco Schade:
Du hast recht wegen der Spam. Ich versende Aufforderungen zur Erstellung von Angeboten. Die gehen immer an mehrere mögliche Kandidaten. Diese sollen aber nicht voneinander wissen, deswegen Bcc. Die Links sind für Antwortmöglichkeiten, wie z.B. “Ja, wir geben ein Angebot ab” oder “Nein, von uns wird kein Angebot erstellt”. Die Links wollen wir machen, weil es Erfahrungsgemäß sonst nicht geantwortet wird.
vielleicht passt meine Frage nicht ganz aber ich habe ein Makro in Benutzung das aus einer Excel Tabelle eine E-Mail via Outlook verschickt mit individuellen Anhängen das funktioniert auch alles einwandfrei. Jetzt möchte ich gerne das eine Kopie der verschickten Mail automatisch in einem Ordner auf der Festplatte abgespeichert wird unter “Name, Vorname_Betreff” Gibt es da vielleicht einen Lösungsansatz?
Moin,
ich habe folgende Situation.
Es gibt einen Urlaubsplan, welcher neben seiner ursprünglichen Funktion, auch gleich dei Möglichkeit bieten soll eine weitestgehend vorgefertigte Mail an den Vorgesetzten (mich) zu senden. nun habe ich mir überlegt, dass es evtl. Sinn macht, dass meine Stellvertretung ggf. mal den Mailverteiler anpasen kann. Da diese jedoch keinerlei Kenntnisse von VBA hat, wäre das fast schon unmöglich zu arrangieren.
ist es alternativ möglich die Empfänger der Mail über eine Quelle in einer ausgeblendeten und schriebgeschützten Mail zu nutzen? Etwa so, dass der Urlaubsplan und der Button in Tabelle “Urlaubsplan” vorhanden sind, sich das Script den Mailverteiler (“.To =”) zum Beispiel aus der Spalte B in Tabelle “Org” zieht.
Vielen Dank vorab für die Antwort
und beste Grüße
Tandilwe
Hallo,
Erstmal toll das Du Dir soviel Zeit nimmst, um alle Fragen zu beantworten.
Ich würde gern im Vba direkt angeben wo excel die email nach dem Versenden in Outlook ablegen soll?
Geht das?
VG sven
Hilft dir diese Lösung weiter? Habe ich selbst aber nicht getestet. http://www.office-loesung.de/ftopic452997_0_0_asc.php
Hallo,
vorab herzlichen Dank für die Mühe all diese Fragen zu beantworten. Gibt es eine Möglichkeit den Betreff der Email aus verschiedenen Zellen zu generieren (z.B. B11 / B4 / B23)?
Vielen Dank und beste Grüße
Felix
@Felix: Na klar. Das ginge dann ungefähr so:
.Subject = Range("B11").Value & " / " & Range("B4").Value & " / " & Range("B23").Value
Hi!
Danke erst einmal für die ganzen Codes, das hilft ungemein für das Verständnis.
Allerdings helfen die mir bei meinem Problem nicht weiter. Ich bin davon ausgegangen, hier könnte ich individuelle Mails versenden, auf Grundlage der Felder in Excel.
Ich habe einen Datensatz mit ca. 100 Personen. Jede Person möchte ich gern in der Anrede individuell benennen (Sehr geehrte Frau Musterfrau, etc.), anschließend soll ein allgemeiner Mailtext kommen. Dazu soll es auch an die jeweils individuell in den Zellen benannte, passende Email-Adresse geschickt werden. Als wäre das nicht genug, sollen die Personen auch jeweils ihr individuelles PDF-Dokument mitgeschickt bekommen. Das ist aber jeweils schon unter einer bestimmten Nummer in einem Ordner abgelegt.
Hört sich für mich alles sehr schwer an und ich bin mir unsicher, ob es dafür einen speziellen Code gibt. Google und YouTube haben mir bislang nicht weiterhelfen können.
Danke schon einmal und beste Grüße!
@Patta: Individuelle VBA Lösungen biete ich im Rahmen einer Auftragsprogrammierung an. Bei Interesse senden Sie mir gerne eine Email für die Erstellung eines Angebots.
Hallo zusammen,
ich habe hier jetzt fast alles gefunden was ich brauche.
Wie kann ich eine E-Mail versenden und die “Antwort an” (Replyto) Möglichkeit nutzen?
Ich versende aus meinem persönlichen Briefkasten, möchte aber das die Antwort an einen anderen Briefkasten geht.
Thomas
@Thomas Bolder: Grundsätzlich erfolgt eine Antwort immer an die Adresse des Absenders. Möchte man das ändern, sind das Methoden, die auch von Spammern genutzt werden. Das sehe ich deshalb mehr als kritisch. Daher sollte eigentlich auch immer der Absender die Emailadresse sein, an die geantwortet werden soll. Alternativ würde ich in den Emailtext einen Hinweis einbauen, das Antworten abweichend an Email xy gehen sollen.
Hmm, Danke für den Hinweis, aber da dieses Script nur firmenintern genutzt wird, ist Spam hier nicht das Problem.
Die Empfänger wissen um diesen Umstand und es ist sehr bequem auf “Antwort” zu klicken statt eine Adresse aus der E-Mail zu kopieren o.ä.
Hallo,
ich habe ein solches Makro auch jahrelang erfolgreich für den Versand mit individuellen Anhängen genutzt und bin nun auf Mac umgestiegen, wobei ich dort weiterhin Office und eben auch Excel für Mac nutze. Da funktioniert diese Art des Codes anscheinend nicht mehr. Gibt es eine Möglichkeit, ein Windows-Makro für Mac zu übersetzen?
Viele Grüße
Julia
___
Sub AnlagenMailen()
Dim oOL As Object
Dim oOLMsg As Object
Dim oOLRecip As Object
Dim oOLAttach As Object
Dim iRow As Integer, iCounter As Integer
Dim sFile, sRec As String, sSub As String
Dim sBody As String
Dim bln, S
Application.ScreenUpdating = False
iRow = Cells(Rows.Count, 1).End(xlUp).Row
Set oOL = CreateObject(“Outlook.Application”)
For iCounter = 2 To iRow
sRec = Cells(iCounter, 1) ‘An
sFile = Split(Cells(iCounter, 4), “;”) ‘Anlage
sSub = Cells(iCounter, 2) ‘Betreff
sBody = Cells(iCounter, 3) ‘Text
Set oOLMsg = oOL.CreateItem(0)
With oOLMsg
Set oOLRecip = .Recipients.Add(sRec)
.Subject = sSub
.Body = sBody & vbLf & vbLf
For S = 0 To UBound(sFile)
.Attachments.Add sFile(S)
Next S
‘.display
.Send
End With
oOLRecip.Resolve
Next iCounter
Set oOL = Nothing
End Sub
Hallo liebe Leute ich muss das Thema nochmal rausziehen. Wir haben in unserem Outlook mehrere Postfacher ich möchte aber nur die Email aus einem der Postfacher weiterleiten könnt Ihr mir helfen das hier in meinen Code einzubauen bitte?
Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
Dim objMail_In As Outlook.MailItem
Dim objMail_Out As Outlook.MailItem
Dim aryEntryIDs() As String
Dim lngCount As Long
‘jedes neue MailItem durchgehen
aryEntryIDs = Split(EntryIDCollection, “,”)
For lngCount = 0 To UBound(aryEntryIDs)
Set objMail_In = Application.Session.GetItemFromID(aryEntryIDs(lngCount))
Set objMail_Out = objMail_In.Forward
With objMail_Out
.To = “MeineEmailadresse@Email.de”
.Subject = “[AXA] ” & objMail_In.Subject
.Send
End With
Next lngCount
End Sub
Wäre schön wenn mir einer helfen kann Danke!
Hallo liebe Wissenden,
ich habe keine Ahnung von VBA und habe mit viel Recherche und Mühe einen Code erstellt, bei dem ich einen Bereich meiner Exceltabelle mithilfe eines “Senden” Buttons und einem zusammengebasteltem VBA Code an zwei bestimmte Empfängeradressen versenden kann.
Dieses Formular wird von verschiedenen Usern ausgefüllt und dient zur Informationsbeschaffung von Versandanforderungen von Ersatzteilen.
Nun wurde gewünscht, dass die jeweiligen User/Versender ebenfalls dieses Formular nach dem versenden im Outlook Posteingang haben.
Da es zwischen dem Outlook-Account und dem Excelformulart eine automatische Verknüpflung gibt, hatte ich angenommen, dass es kein goßes Hexenwerk sei so einen Code zu finden und in den bestehenden einzufügen.
Leider bin ich bislang nicht fündig geworden und würde mich über alle Maßen freuen, wenn ich von euch einen Hinweis oder besser noch, den Code dafür bekommen könnte.
Vielen Dank vorab
LG
Alex
Hallo Alex,
konnte dein Problem schon gelöst werden? Wenn nicht, gib kurz Bescheid.
LG Philipp
Hallo zusammen,
ich habe eine kleine Liste von Adressanten (Mailadresse) in Excel. Nun möchte ich hier in Excel eine “Massenmail” mit mehreren Empfängern .TO und Empfängern in .CC senden. Ist eine Modifikation am Code möglich, welche mir eine gezielte Auswahl von Empfängern und Empfängern im CC ermöglicht? Quasi eine 2x-ige Abfrage o.ä. Danke im Voraus!
Eugen
Hallo ,,
Gibt es eine Möglichkeit alle Dateien in einem Ordner (c:\Daten )
an eine Email anzuhängen ohne Angabe von Dateinamen ?
Danke
Andy
@Andy: Dazu ist es nötig vorab ein Makro zu nutzen, dass die Dateien Im Ordner ausliest. Wie das funktioniert habe ich in diesem Beitrag beschrieben: https://www.makro-excel.de/2017/01/31/dateinamen-eines-verzeichnisses-mit-vba-auslesen-und-in-excel-schreiben/
Hallo gibt es eine Möglichkeit spezielle Anhänge zu löschen (z.B. “Material.pdf”)
oder immer die letzten beiden Anhänge.
Ich habe mir ein Marko gebastelt um Emails erneut zu versenden, wobei immer ein Wort aus dem Betreff und die Empfänger im BCC durch nichts ersetzt werden (also gelöscht). Jetzt müssten nur noch immer zwei Anhänge mit einem bestimmten Namen gelöscht werden. Alternativ immer die beiden letzten, es können aber mal 4, mal 9 oder auch mal 14 Anhänge sein.
Hier mein aktuelles script:
Select Case TypeName(Application.ActiveWindow)
Case “Explorer”
Set myItem = Application.ActiveExplorer.Selection.Item(1)
myItem.Display
Case “Inspector”
Set myItem = Application.ActiveInspector.CurrentItem
Case Else
End Select
On Error GoTo 0
If myItem Is Nothing Then
MsgBox “Could not use current item. Please select or open a single email.”, _
vbInformation
GoTo ExitProc
End If
‘ run the resend command
Set objInsp = myItem.GetInspector
objInsp.CommandBars.ExecuteMso (“ResendThisMessage”)
‘ get the opened compose message form & send it
‘ delete these lines if you don’t need to auto-edit or to auto-send it
Set olResendMsg = Application.ActiveInspector.CurrentItem
‘ update fields
olResendMsg.Subject = Replace(olResendMsg.Subject, “Material”, “”)
olResendMsg.bcc = ” ”
olResendMsg.Attachments.Remove (8)
olResendMsg.Attachments.Remove (7)
‘close orig email
myItem.Close olDiscard
ExitProc:
Set myItem = Nothing
Set objInsp = Nothing
Set objActionsMenu = Nothing
Set olResendMsg = Nothing
End Sub