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

Serientermin im Outlook über Excel

Serientermin im Outlook über Excel
01.07.2013 08:50:10
Hans
Hallo Zusammen,
ich habe ein Problem und das Internet hat einfach keine Antwort für mich parat...
Ich habe eine Excel Tabelle in der in Spalten E-Mail Adressen untereinander stehen. Die Adressen in einer Spalte bilden dann jeweils einen Verteiler.
Hier ist mal eine Beispiel-Datei um das Prinzip deutlich zu machen
https://www.herber.de/bbs/user/85925.xlsx
Unter allen Spalten/ Verteilern steht ein Feld wo ein Betreff eingetragen werden soll und auch ein Text der alles betrifft (ist für alle in einem Verteiler gleich). Das soll sozusagen ein Serientermin werden.
Ich möchte jetzt einen Button unter dem Verteiler haben der mir im Outlook einen Termin öffnet und den darüber stehenden Verteiler bereits eingefügt hat und auch den Betreff und Text. Absolutes Highlight wäre dann noch das anhängen einer Datei.
Eine andere Möglichkeit wäre auch das der Button gleich automatisch an diesen Verteiler Betreff, Text und Datei verschickt.
Eine weitere Möglichkeit die akzeptabel wäre, ist das Outlook sich als Termin öffnet und Text und Betreff bereits übernommen wurden. Die Datei könnte man ja dann per Drag&Drop einfügen, genauso wie Ort und Zeit der Besprechung...
bisher stand hinter den Button´s folgender Text:
Sub Excel_Serial_Mail()
Dim MyOutApp As Object, MyMessage As Object
Dim i As Long
'Start der Sendeschleife an 10 Empfänger
For i = 6 To 43
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Die Empfänger stehen in Spalte A ab Zeile 1
.To = Cells(i, 5) 'E-Mail Adresse
'Der Betreff in Spalte B
.Subject = Cells([47], [3])   '"Betreffzeile"
'Der zu sendende Text in Spalte C
'Maximal 1024 Zeichen
'Der Text wird ohne Formatierung übernommen
.Body = Cells([50], [3])
'Hier wird die Mail angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
'Objectvariablen leeren
Set MyOutApp = Nothing 'CreateObject("Outlook.Application")
Set MyMessage = Nothing 'MyOutApp.CreateItem(0)
'Sendepause einschalten
'Outlook kann die Aufträge nicht schnell genug verarbeiten
Application.Wait (Now + TimeValue("0:00:05"))
Next i
End Sub
Hat super funktioniert aber eben nur als Serienmail! Vielleicht reicht eine simple Umformung um mein Problem zu lösen?
Danke schon mal für Eure Hilfe
LG Hans

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
ne Idee für EINE Mail an alle
01.07.2013 12:08:10
Oberschlumpf
Hi Hans
ungetestet
Und wenn du die For/Next-Schleife nur mit der .To-Zeile verbindest?
Sub Excel_Serial_Mail()
Dim MyOutApp As Object, MyMessage As Object
Dim i As Long
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Die Empfänger stehen in Spalte A ab Zeile 1
'Start der Sendeschleife an 10 Empfänger
For i = 6 To 43
.To = Cells(i, 5) 'E-Mail Adresse
Next i
'Der Betreff in Spalte B
.Subject = Cells([47], [3])   '"Betreffzeile"
'Der zu sendende Text in Spalte C
'Maximal 1024 Zeichen
'Der Text wird ohne Formatierung übernommen
.Body = Cells([50], [3])
'Hier wird die Mail angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
'Objectvariablen leeren
Set MyOutApp = Nothing 'CreateObject("Outlook.Application")
Set MyMessage = Nothing 'MyOutApp.CreateItem(0)
'Sendepause einschalten
'Outlook kann die Aufträge nicht schnell genug verarbeiten
Application.Wait (Now + TimeValue("0:00:05"))
End Sub
Zumindest nach meiner Idee werden nun alle Mailadressen ins AN-Feld eingetragen.
Und es wird nur EINE Mail versendet.
Kann sein, dass du den Code noch anpassen musst, da ich jetzt wirklich nur nach meinen Überlegungen gegangen bin ohne zu testen.
Hilfts?
Ciao
Thorsten

Anzeige
AW: ne Idee für EINE Mail an alle
01.07.2013 15:35:18
Hans
Hallo Thorsten, hatte schon Angst du hast mich vergessen...^^
Habe jetzt deinen Text eingebaut und habs dann mal versucht. Kam leider wieder nur eine Mail die automatisch gesendet wurde. War auch nur eine einzige Mail? Sollten eig mehr sein wenn...
Hast du evtl. noch eine Idee?
LG Hans

AW: ne Idee für EINE Mail an alle
01.07.2013 15:42:07
Oberschlumpf
Hi Hans
Wieso hattest DU Angst, dass ich dich vergesse?
Sorry, versteh ich (noch) nicht.
Und was den Code betrifft:
Ja, dass nur EINE Mail verschickt wurde, war doch auch so gewollt.
Aber öffne noch mal die eine versendete Mail
Schau mal in das AN-Feld
Wieviele Mailadressen sind da eingetrag....
HUCH!
Ok ok, hab den Fehler erkannt, glaube ich :-)
Versuch es noch mal mit meinem Code UND dieser Änderung:
Anstelle von
.To = Cells(i, 5) 'E-Mail Adresse
schreibst du
.To = .To & Cells(i, 5) 'E-Mail Adresse & ";"
.To = Left(.To, Len(.To) -1)
Hilfts?
Ciao
Thorsten

Anzeige
AW: ne Idee für EINE Mail an alle
02.07.2013 07:30:11
Hans
Hallo Thorsten, hab schon mal einen Beitrag reingestellt zu dem Thema und du hattest zu Anfang geantwortet aber dann leider nicht mehr. Jetzt hat´s ja zum noch Glück geklappt ^^
Danke für den Code
Also hab das jetzt so eingebaut. Der Schalter wurde mit dem neuen Code hinterlegt und jetzt kommt die Fehlermeldung "Laufzeitfehler - Outlook kennt mindestens einen Namen nicht"
So steht es nun in meiner Excel Datei
Sub Excel_Serial_Mail()
Dim MyOutApp As Object, MyMessage As Object
Dim i As Long
Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
'Die Empfänger stehen in Spalte A ab Zeile 1
'Start der Sendeschleife an 10 Empfänger
For i = 6 To 18
.To = .To & Cells(i, 5) 'E-Mail Adresse & ";"
.To = Left(.To, Len(.To) - 1)
Next i
'Der Betreff in Spalte B
.Subject = Cells([47], [3])   '"Betreffzeile"
'Der zu sendende Text in Spalte C
'Maximal 1024 Zeichen
'Der Text wird ohne Formatierung übernommen
.Body = Cells([50], [3])
'Hier wird die Mail angezeigt
'.Display
'Hier wird die Mail gleich in den Postausgang gelegt
.Send
End With
'Objectvariablen leeren
Set MyOutApp = Nothing 'CreateObject("Outlook.Application")
Set MyMessage = Nothing 'MyOutApp.CreateItem(0)
'Sendepause einschalten
'Outlook kann die Aufträge nicht schnell genug verarbeiten
Application.Wait (Now + TimeValue("0:00:05"))
End Sub
Habe ich da einen Fehler gemacht beim einsetzen?
Danke dir
LG Hans

Anzeige
AW: ne Idee für EINE Mail an alle
02.07.2013 09:57:07
Oberschlumpf
Hi Hans
wieder mein Fehler.
Aber so lange du keine Bsp-Datei zeigst, werde auch ich meine Code-Beispiele ungetestet hier reinschreiben.
Ändere mal
For i = 6 To 18
.To = .To & Cells(i, 5) 'E-Mail Adresse & ";"
.To = Left(.To, Len(.To) - 1)
Next i
in
For i = 6 To 18
.To = .To & Cells(i, 5) 'E-Mail Adresse & ";"
Next i
.To = Left(.To, Len(.To) - 1)
Nach meiner Idee sollten nun mehrere Mailadressen im AN-Feld stehen - alle getrennt durch ein Semikolon.
Hilfts?
Ciao
Thorsten

AW: ne Idee für EINE Mail an alle
02.07.2013 10:13:06
Hans
Kommt leider wieder dieselbe Fehlermeldung.
Sorry,habe dir hier eine Beispiel-Datei ran gehangen:
https://www.herber.de/bbs/user/85925.xlsx
Ist diese Datei ausreichend für dich? Wenn nicht sag einfach bescheid was du brauchst.

Anzeige
AW: ne Idee für EINE Mail an alle
02.07.2013 10:14:48
Hans
Hab ich ganz vergessen, hinter den Schaltern befindet sich noch kein Code.
Konnte das sonst nich hochladen...
Danke dir

AW: ne Idee für EINE Mail an alle
02.07.2013 11:14:03
Oberschlumpf
Hi Hans
Ja, entschuldige bitte, natürlich hattest du gleich zu Beginn ne Bsp-Datei gezeigt.
Hier nun meine Datei, die mit Klick auf den linken Button genau das macht, was sie soll.
Es wird eine Mail erzeugt mit vielen Adresseinträgen im AN-Feld - alle Adressen durch ; getrennt:
https://www.herber.de/bbs/user/86163.xlsm
(mit Makro - weiß nicht, was du falsch machtest, als es bei dir mit Makro nicht klappte)
Der Grund für den Fehler "Outlook kennt mindestens einen Namen nicht" ist, dass in deiner Adresse für Mailadressen gar keine Mailadressen drin stehen!´
Ich war mal so frei und hab überall bsp@bsp.com eingetragen.
Für den Code bedeutet das also, dass in jeder abgefragten Zelle eine Mailadresse mit gültiger Synrax stehen muss - oder - du müsstest im Code erst prüfen, ob ein Eintrag als gültige Mailaddy durchgeht.
Hilfts?
Ciao
Thorsten

Anzeige
AW: ne Idee für EINE Mail an alle
02.07.2013 11:31:45
Hans
Ok so ist das schon mal fast perfekt und bei deiner Datei funktioniert es auch wunderbar!
-Leider ist es aber eine Mail und kein Termin?
-Und geht es das sich der Termin mit dem Verteiler (sprich wie bei dir die vielen Adressen mit ";" getrennt) oben drin nur öffnet ohne abgeschickt zu werden?
mit dem Format als Mail hab ich hingekriegt...^^
Vielen vielen Dank schon mal!!!! Du hast es bestimmt gleich geschafft

wer anders bitte - ne Idee für EINE Mail an alle
02.07.2013 11:51:28
Oberschlumpf
Hallo Hans
Nein, leider hab ich es nicht geschafft.
Und wie du es ja selbst im Betreff al meiner Antworten lesen kannst, hatte ich "nur" ne Idee für EINE MAIL an alle.
Für Kalenderlösung muss ich leider auch passen.
Ciao
Thorsten

Anzeige
AW: wer anders bitte - ne Idee für EINE Mail an alle
02.07.2013 12:43:13
Hans
Ok schade aber vlt. kannst du ja diesen Text hier auf meine Tabelle abstimmen...?
Sub Excel_Control_Termin_nach_Outlook()
'E 2000
'Dim OutApp As Outlook.Application
Dim OutApp As Object, apptOutApp As Object
'Hier beginnen die Termine
Range("A2").Select
Do Until ActiveCell.Value = ""
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
With apptOutApp
'Datum und Uhrzeit
'Hier werden zum aktuellen Tag 7 Tage addiert
.Start = Format(Now()+7, "dd.mm.yyyy") & " 08:00"
'Alternativ werden die Termine aus der Zelle genommen
'.Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
'Termininfo
.Subject = "Rechnung: " & ActiveWorkbook.Name & " kontrollieren"
'oder der Betreff steht in der Spalte rechts von den Terminen
.Subject = ActiveCell.Offset(0,1)
'Zusätzlicher Text
.Body = ""
'ort
.Location = ""
.Duration = "5"
'Erinnerung
.ReminderMinutesBeforeStart = 10
'mit Sound :-)
.ReminderPlaySound = True
'Erinnerung wiederholen
.ReminderSet = True
'Termin speichern
.Save
End With
'Nächste Zelle auswählen
ActiveCell.Offset(1, 0).Select
'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal
Set apptOutApp = Nothing
Set OutApp = Nothing
Loop
MsgBox "Termine an Outlook übertragen!"
End 

Sub
Auch das mit dem Verteiler wie er bei deiner letzten Version war...?

Anzeige
AW: wer anders bitte - ne Idee für EINE Mail an alle
02.07.2013 12:43:34
Hans
Ok schade aber vlt. kannst du ja diesen Text hier auf meine Tabelle abstimmen...?
Sub Excel_Control_Termin_nach_Outlook()
'E 2000
'Dim OutApp As Outlook.Application
Dim OutApp As Object, apptOutApp As Object
'Hier beginnen die Termine
Range("A2").Select
Do Until ActiveCell.Value = ""
Set OutApp = CreateObject("Outlook.Application")
Set apptOutApp = OutApp.CreateItem(1) 'olAppointmentItem)
With apptOutApp
'Datum und Uhrzeit
'Hier werden zum aktuellen Tag 7 Tage addiert
.Start = Format(Now()+7, "dd.mm.yyyy") & " 08:00"
'Alternativ werden die Termine aus der Zelle genommen
'.Start = Format(ActiveCell.Value, "dd.mm.yyyy") & " 08:00"
'Dauer. Angabe ist jeweils in ganzen Minuten zu setzen
'Termininfo
.Subject = "Rechnung: " & ActiveWorkbook.Name & " kontrollieren"
'oder der Betreff steht in der Spalte rechts von den Terminen
.Subject = ActiveCell.Offset(0,1)
'Zusätzlicher Text
.Body = ""
'ort
.Location = ""
.Duration = "5"
'Erinnerung
.ReminderMinutesBeforeStart = 10
'mit Sound :-)
.ReminderPlaySound = True
'Erinnerung wiederholen
.ReminderSet = True
'Termin speichern
.Save
End With
'Nächste Zelle auswählen
ActiveCell.Offset(1, 0).Select
'Variablen leeren,... sonst "kotzt" Outlook irgendwann mal
Set apptOutApp = Nothing
Set OutApp = Nothing
Loop
MsgBox "Termine an Outlook übertragen!"
End 

Sub
Auch das mit dem Verteiler wie er bei deiner letzten Version war...?

Anzeige
AW: wer anders bitte - ne Idee für EINE Mail an alle
07.07.2013 13:47:37
fcs
Hallo Hans Joachim,
ich habe deine Ursprungsdatei mal unter Verwendung deines letzten Codes um die zum Erstellen eines Besprechungseintrags in Outlook erforderlichen Makros ergänzt und diese mit den Schaltflächen verknüpft.
https://www.herber.de/bbs/user/86236.xlsm
Es funktioniert einigermassen. Zumindest konnte ich einen Entwurf für die Besprechung mit den Daten aus dem Tabellenblatt in Outlook zu Anzeige bringen und anschliessend versenden.
Wenn die Besprechung auch gleich gespeichert werden soll, dann musst du die entsprechende Zeile im Code aktivieren durch Entfernen des Kommentarzeichens.
Gruß
Franz

Anzeige
AW: wer anders bitte - ne Idee für EINE Mail an alle
08.07.2013 07:29:14
Hans
Hallo Franz,
vielen vielen Dank!!! Genauso habe ich mir das vorgestellt!!!!
Du warst mir eine große Hilfe, würde dir dafür gern ein ausgeben aber geht hier leider schlecht ^^
LG Hans

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige