Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1380to1384
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

Mailversand per VBA

Mailversand per VBA
24.09.2014 20:53:43
Toto
Hallo,
Ich bin denke dass ich was Excel angeht im Bereich Formeln etc. angeht einerseits schon recht fit, aber andererseits was das Thema VBA noch blutiger Anfänger bin und stehe nun vor einer leider für mich bisher unlösbaren Aufgabe die ich auch mit meinem schlauen Excel-Lehrbuch (Thomas heis, Einstieg in VBA mit Excel) nicht lösen konnte.
Es geht um Folgendes:
Ich werde jeden Monat ca. 300 Excel-Dateien (mal mit Makros,mal ohne) erzeugen lassen mittels VBA (das klappt schon alles gut, bin selbst überrascht) die in einem gemeinsamen Ordner abgelegt werden für den jeweils aktuellen Monat. Jeden Monat ein neuer Ordner in dem dann je eine Datei pro Kunde liegt die natürlich auch unterschiedlich heißen.
Das heißt es gibt einen Ordner für September, einen für Oktober,… und in jedem Ordner liegen ca. 300 Dateien die unterschiedlich heißen.
Diese Dateien unterscheiden sich ansonsten nur hinsichtlich der Werte jedoch nicht hinsichtlich des Aufbaus.
In Zelle B1 des Tabellenblattes Rechnung (Name ist in allen Dateien identisch) steht jeweils die Mailadresse des Kunden.
Gibt es eine Möglichkeit jede der Dateien in einem Monatsordner per VBA per Outlook versenden zu lassen an den Adressaten der in Zelle B1 steht?
Mein Ziel wäre also Folgendes: Ich wollte eine Excel-Steuerungsdatei mit Namen „Versand“ erstellen in der ich einen Command-Button einfüge und mit einem Makro verknüpfen kann welches folgendes erledigen soll:
Es sollen alle Dateien des jeweiligen Monatsordners (beispielsweise September) den ich gerne in der SteuerungsDatei „Versand“ in Zelle D5 eingeben würde über Outlook versendet werden. Jede Datei aber natürlich stets nur an den Empfänger der in den zu versendenden Dateien in der Zelle B1 angegeben ist. Kurzum: Jeder Kunde soll nur seine Datei bekommen.
Außerdem würde ich gerne in der in der Steuerungs-Datei in Zelle D6 den Betreff der Mails (für alle Mails identisch) eintragen und den Mailtext in den einzelnen zu versendenden Dateien in Zelle B2.
Ich hoffe ich habe mein Problem verständlich beschrieben und bin für jede Hilfe unendlich dankbar.
Ich habe versucht Dateien per VBA an Outlook zu senden. Dies habe ich aber nur für einzelne Dateien geschafft und auch nur nach vorherigem Dialog von Outlook.
Jeden Monat 300 Mails händisch zu verschicken würde mich glaube ich an den Rand des Wahnsinns treiben. Genauso wie ein Zwischendialog zum Bestätigen eher nicht so gut wäre.
Vielen Dank für jede Hilfe bereits vorab.
Gruß Toto

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mailversand per VBA
25.09.2014 01:04:33
Martin
Hallo Toto,
im Grunde hört sich dein Anliegen nicht sehr kompliziert an. Outlook kann per VBA über die Objektbibliothek sogar ziemlich einfach angesprochen werden, aber das hast du ja scheinbar bereits herausgefunden. Der von dir angesprochene Dialog ist eine Sicherheitsbarriere, um dem Massenversand von SPAM-Mails Einhalt zu gebieten. Da gibt es aber Tools, die das Problem für dich lösen können (siehe http://www.heise.de/download/clickyes-pro-1136498.html).
Hier noch ein Makro zum Auslesen aller Exceldateien eines Ordners:
Sub ReadDirectory()
Dim strFile As String
strFile = Dir("C:\Test\*.xlsx") 'Ordner und evtl. Dateityp anpassen
Do Until strFile = ""
Debug.Print strFile
strFile = Dir()
Loop
End Sub
Du musst also nur noch die benötigten Zellen aus den per ReadDirectory ermittelten Excel-Dateien auslesen und in deinen Code zum Email-Versand einsetzen.
Viele Grüße
Martin

Anzeige
AW: Mailversand per VBA
28.09.2014 17:49:59
Toto
Hallo Martin,
Vorweg danke für deine Hilfe, konnte das Ganze doch noch wider Erwarten lösen. Sicher nicht perfekt aber es ist doch zufriedenstellend und funktioniert. Und irgendwann werde ich solche Dinge hoffenlich auch besser lösen können, stehe ja noch am Anfang mit VBA :-). Leider muss ich bei jeder Mail noch bei Outlook den Versand zulassen aber solche Tools wie du sie empfohlen hast (auch wenn sicher gut) darf ich kaum installieren in der Arbeit.
Hier mal meine Variante falls noch jemand Verbesserungsvorschläge hat (Beispielsweise ob es bei SendMail auch die Möglichkeit gibt einen Nachrichtentext einzugeben):
Sub versand()
Dim pfad As String
Dim dateipfad As String
pfad = Cells(1, 2).Value & "\"
datei = Dir(pfad & "*.xlsx")
Do While datei  ""
Workbooks.Open (pfad & datei)
ActiveWorkbook.SendMail Cells(1, 1).Value, "Anbei erhalten Sie die aktuelle Übersicht  _
September 2014"
ActiveWorkbook.Close
'nächste Datei lesen
datei = Dir
Loop
End Sub
Gruß Toto
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige