Automatischer E-Mail Versand

Hallo,

hier den Link für den Ursprunksartike:
/t/outlook-2003-e-mail-versand-dauerhaft-planen/4829076

Ich müsste hierzu noch wissen, wo ich die Startzeit eintrage.

Den Anweisungen bisher befolgt sieht das so aus:

Private Const REMINDER_SUBJECT As String = „WeeklyMailReminder“

Private Sub Application_Reminder(ByVal Item As Object)
SendMailInReminderIntervals Item
End Sub

Private Sub SendMailInReminderIntervals(Item As Object)
Dim oTask As Outlook.TaskItem
Dim oMail As Outlook.MailItem
Dim oFld As Outlook.MAPIFolder
Const TEMPLATE_SUBJECT As String = „Daily Mail“
Const TEMPLATE_ADR As String = „[email protected]
Const TEMPLATE_BODY As String = „Hallo Herr XXX, & VBCrLf &_“
bitte teilen Sie uns die Anzahl der Leergut-Paletten die am Montag zu holen sind mit. & VBCrLf & VBCrLf & _
Vielen Dank & VBCrLf & VBCrLf & VBCrLf & _
Mit freundlichen Grüßen & VBCrLf & VBCrLf & _
Patrick XXX & VBCrLf & _
__________________________________________ & VBCrLf & VBCrLf & _
C & L Service GmbH & VBCrLf & VBCrLf & _
XXX & VBCrLf & _
XXX & VBCrLf & _
Telefon: +49 XXX & VBCrLf & _
Telefax: +49 XXX & VBCrLf & _
E -Mail: [email protected] & VBCrLf & _
Internet: http://www.XXX.de & VBCrLf & _
__________________________________________ & VBCrLf & VBCrLf & _
Geschäftsführer XXX & VBCrLf & _
Amtsgericht Pfaffenhofen a.d.Ilm & VBCrLf & _
Handelsregisterbuch XXX & VBCrLf & _
Ust-Id-Nr. DE XXX & VBCrLf & _
Steuer-Nr. XXX"

If TypeOf Item Is Outlook.TaskItem Then
Set oTask = Item
If oTask.Subject = REMINDER_SUBJECT Then

oTask.ReminderTime = DateAdd(„d“, 1, oTask.ReminderTime)
oTask.Save

Set oMail = Application.CreateItem(olMailItem)
oMail.Subject = TEMPLATE_SUBJECT
oMail.Body = TEMPLATE_BODY
oMail.Recipients.Add TEMPLATE_ADR
oMail.Recipients.ResolveAll
oMail.Send
End If
End If
End Sub

Leider stimmt was beim Text nicht da immer „Fehler beim kompilieren. Erwartet Anweisungsende“.
Ich habe von der Programierung leider keine Ahnung und habe bisher nur die Anweisungen befolgt :smile:

Danke für die Hilfe.

Hi Patrick,

hier den Link für den Ursprunksartike:
/t/outlook-2003-e-mail-versand-dauerhaft-planen/4829076

hilft uns dieser Link weiter ?

Ich müsste hierzu noch wissen, wo ich die Startzeit eintrage.

Das ist einfach, in den Taskmanager o.ä. der ein Makro zeitlich gesteuert aufruft oder in ein Makro was beim Öffnen von OL abläuft.

Den Anweisungen bisher befolgt sieht das so aus:

Welchen Anweisungen ?

Leider stimmt was beim Text nicht da immer „Fehler beim
kompilieren. Erwartet Anweisungsende“.

Wird, und wenn ja, wenn du auf Debuggen gehst eine Zeile markiert, welche?

Die Unterstriche mit denen man eine Codezeile aufteilen kann mag ich sowieso nicht, sie bergen eine Gefahr.

Gehe mal zeile für Zeile deinen Code durch, jeder Aufteilungsunterstrich muß vor sich ein Leerzeichen haben, gib hinter jedem Unterstrich ein Leerzeichen ein, dann drücke auf Enter.
Wenn dann unter dieser Zeile eine Leerzeile eingefügt wird, dann lösch die.

Wenn du das sorgfältig machst kann man dann ausschließen daß die Fehlermeldung aufgrund von problemen mit dem Unterstrich kam.

Hilfreich zur Ermittlung der Fehlerzeile ist auch, du gehst den Code mit F8 durch.

Gruß
Reinhard

/t/outlook-2003-e-mail-versand-dauerhaft-planen/4829076

hilft uns dieser Link weiter ?

Ich denke schon, da dort alles zu lesen ist, was bisher geschah. Rückblende :smile:

Das ist einfach, in den Taskmanager o.ä. der ein Makro
zeitlich gesteuert aufruft oder in ein Makro was beim Öffnen
von OL abläuft.

Wenn man sowas schon mal gemacht hat ja. Aber da google ich dann einfach wie das funktiniert.

Welchen Anweisungen ?

Dafür den Link.

Wird, und wenn ja, wenn du auf Debuggen gehst eine Zeile
markiert, welche?

Ja und zwar ab der Zeile die mit „bitte“ beginnt bis zur Zeile die mit „Steuer“ beginnt. Das dürfte denke ich an den Gänsefüsschen in der Zeile
Const TEMPLATE_BODY As String = „Hallo Herr XXX, & VBCrLf &_“
liegen da ich das hintere Gänsefüsschen nicht weg bekomme. Wenn ich es lösche kommt es automatisch wieder. Mit dem Gänsefüsschen wird der Text beendet oder?

Hallo,

Das dürfte denke ich an den
Gänsefüsschen in der Zeile
Const TEMPLATE_BODY As String = „Hallo Herr XXX, & VBCrLf &_“
liegen da ich das hintere Gänsefüsschen nicht weg bekomme.
Wenn ich es lösche kommt es automatisch wieder. Mit dem
Gänsefüsschen wird der Text beendet oder?

ja.

Du scheinst ein Problem mit der Verwendung von Strings zu haben.

Wenn ich eine Konstante angebe:
Const Txt As String = „Halle Welt“

Muss VB natürlich wissen, wie der String aussehen soll und wo er endet. Das Ende offen lassen geht nicht. Konstante verändern auch nicht, sonst wäre sie ja nicht konstant sondern variabel.

Wenn Du später noch etwas einfügen möchtest, darfst Du keine Konstante verwenden. Nimm eine Variable und Du kannst …

Dim Txt As String
Txt = „Hallo Welt!“ +vbcrlf
Txt = Txt + „und hier geht es weiter …“
Txt = Txt & „Umd weiter … :smile:

Deinen Text bearbeiten wie Du magst.

Dim TEMPLATE_BODY As String
TEMPLATE_BODY = TextVariable ’

Super. Nun ist nichts mehr Rot. Das Ganze sieht jetzt so aus:

Private Const REMINDER_SUBJECT As String = „WeeklyMailReminder“

Private Sub Application_Reminder(ByVal Item As Object)
SendMailInReminderIntervals Item
End Sub

Private Sub SendMailInReminderIntervals(Item As Object)
Dim oTask As Outlook.TaskItem
Dim oMail As Outlook.MailItem
Dim oFld As Outlook.MAPIFolder
Const TEMPLATE_SUBJECT As String = „Daily Mail“
Const TEMPLATE_ADR As String = „[email protected]
Dim Txt As String
Txt = „Hallo Herr XXX,“ + vbCrLf + vbCrLf
Txt = Txt + „bitte teilen Sie uns die Anzahl der Leergut-Paletten die am Montag zu holen sind mit.“ + vbCrLf + vbCrLf
Txt = Txt & „Vielen Dank“ + vbCrLf + vbCrLf + vbCrLf
Txt = Txt & „Mit freundlichen Grüßen“ + vbCrLf + vbCrLf
Txt = Txt & „XXX“ + vbCrLf
Txt = Txt & „__________________________________________“ + vbCrLf + vbCrLf
Txt = Txt & „C & L Service GmbH“ + vbCrLf
Txt = Txt & „XXX“ + vbCrLf
Txt = Txt & „XXX“ + vbCrLf
Txt = Txt & „Telefon: +49 XXX“ + vbCrLf
Txt = Txt & „Telefax: +49 XXX“ + vbCrLf
Txt = Txt & „E -Mail: [email protected]“ + vbCrLf
Txt = Txt & „Internet: http://www.XXX.de“ + vbCrLf
Txt = Txt & „__________________________________________“ + vbCrLf + vbCrLf
Txt = Txt & „Geschäftsführer XXX“ + vbCrLf
Txt = Txt & „Amtsgericht XXX“ + vbCrLf
Txt = Txt & „Handelsregisterbuch XXX“ + vbCrLf
Txt = Txt & „Ust-Id-Nr. XXX“ + vbCrLf
Txt = Txt & „Steuer-Nr. XXX“
If TypeOf Item Is Outlook.TaskItem Then
Set oTask = Item
If oTask.Subject = REMINDER_SUBJECT Then

oTask.ReminderTime = DateAdd(„d“, 1, oTask.ReminderTime)
oTask.Save

Set oMail = Application.CreateItem(olMailItem)
oMail.Subject = TEMPLATE_SUBJECT
oMail.Body = TEMPLATE_BODY
oMail.Recipients.Add TEMPLATE_ADR
oMail.Recipients.ResolveAll
oMail.Send
End If
End If
End Sub

Wie geht es jetzt weiter? Speicher ich das ganze einfach ab und Outlook weiß nun was es machen soll? Muss ich jetzt in den Task Manager das Makro basteln?

Danke für deine schnelle Antwort eben.

Hallo,

Super. Nun ist nichts mehr Rot …

… OK.

Wie geht es jetzt weiter?

Sorry, von VBA habe ich keine Ahnung, mir war nur das Verständnisproblem aufgefallen. Da ging es einfach nur um VB, nicht um Eigenheiten von VBA.

Weiter hilft Dir jetzt Reinhard. :smile:

Gruß Rainer

Hi Patrick,

/t/outlook-2003-e-mail-versand-dauerhaft-planen/4829076

hilft uns dieser Link weiter ?

Ich denke schon, da dort alles zu lesen ist, was bisher
geschah. Rückblende :smile:

k.A. warum, als ich auf den Link klickte sah ich nur deine Anfrage und keine der anderen Beiträge der Beiträgsfolge. Jetzt klappt das.

Das ist einfach, in den Taskmanager o.ä. der ein Makro
zeitlich gesteuert aufruft oder in ein Makro was beim Öffnen
von OL abläuft.

Wenn man sowas schon mal gemacht hat ja. Aber da google ich
dann einfach wie das funktiniert.

Ich kenne „Reminder“ bei OL nicht. Ich habe da was gebastelt was funktionieren müßte wenn OL täglich gestaret wird. Wenn nicht, mußt du im Taskmanager dafür sorgen daß OL, zumindest jeden Freitag, gestartet wird.

Testen kannst du den Code indem du unten in der Taskleiste das datum manipulierst und dann danach den OL startest. Als Empfänger der Mail gibst du dich selbst an im Code, dann siehst du ja ob der Code klappt.

Drücke Alt+F11, links im Verzeichnisbaum klicke ggfs. auf die Pluszeichen bis „Diese OitlookSitzung“ sichtbar wird, darauf dann einen Doppelklick. In das Modulfenster dann diesen Code reinkopieren:

Option Explicit
'
Private Sub Application\_Startup()
Dim FF As Long
If SchonGesendet = True Then Exit Sub
Call Senden
FF = FreeFile
Open "C:\OLTest\Gesendet.txt" For Output As #FF
Print #FF, Format(Date, "yyyymmdd")
Close #FF
End Sub

Dann Einfügen–Modul, dort dann diesen Code reinkopieren, die Mailadresse korrigieren, VB-Editor schließen.

Option Explicit
'
Sub Senden()
Dim oTask As Outlook.TaskItem
Dim oMail As Outlook.MailItem
Dim oFld As Outlook.MAPIFolder
Const TEMPLATE\_SUBJECT As String = "Daily Mail"
Const TEMPLATE\_ADR As String = "[email protected]"
Dim Txt As String
Txt = "Hallo Herr XXX," + vbCrLf + vbCrLf
Txt = Txt + "bitte teilen Sie uns die Anzahl der Leergut-Paletten die am Montag zu holen sind mit." + vbCrLf + vbCrLf
Txt = Txt & "Vielen Dank" + vbCrLf + vbCrLf + vbCrLf
Txt = Txt & "Mit freundlichen Grüßen" + vbCrLf + vbCrLf
Txt = Txt & "XXX" + vbCrLf
Txt = Txt & "\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_" + vbCrLf + vbCrLf
Txt = Txt & "C & L Service GmbH" + vbCrLf
Txt = Txt & "XXX" + vbCrLf
Txt = Txt & "XXX" + vbCrLf
Txt = Txt & "Telefon: +49 XXX" + vbCrLf
Txt = Txt & "Telefax: +49 XXX" + vbCrLf
Txt = Txt & "E -Mail: [email protected]" + vbCrLf
Txt = Txt & "Internet: http://www.XXX.de" + vbCrLf
Txt = Txt & "\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_" + vbCrLf + vbCrLf
Txt = Txt & "Geschäftsführer XXX" + vbCrLf
Txt = Txt & "Amtsgericht XXX" + vbCrLf
Txt = Txt & "Handelsregisterbuch XXX" + vbCrLf
Txt = Txt & "Ust-Id-Nr. XXX" + vbCrLf
Txt = Txt & "Steuer-Nr. XXX"
Set oMail = Application.CreateItem(olMailItem)
oMail.Subject = TEMPLATE\_SUBJECT
oMail.Body = Txt
oMail.Recipients.Add TEMPLATE\_ADR
oMail.Send
End Sub
'
Function SchonGesendet() As Boolean
Dim FF As Long, Satz As String
If Weekday(Date, vbMonday) 5 Then
 SchonGesendet = True
 Exit Function
End If
If Dir("C:\OLTest/nul") = "" Then
 MkDir "C:\OLTest"
 FF = FreeFile
 Open "C:\OLTest\Gesendet.txt" For Output As #FF
 Close #FF
End If
FF = FreeFile
Open "C:\OLTest\Gesendet.txt" For Input As #FF
While Not EOF(FF)
 Line Input #FF, Satz
Wend
Close #FF
If Satz = Format(Date, "yyyymmdd") Then SchonGesendet = True
End Function

Gruß
Reinhard

Hallo Reinhard,

super das du dir die Mühe gemacht hast denn vom Programieren habe ich null Ahnung. Sogar das Wort Makro ist mir nur als Wort bekannt. Ich habe es nun einkopiert und bin auf Speichern gegangen. Als E-Mail Adresse habe ich meine genommen. Wenn ich jetzt Outlook schließe und das Datum auf nächsten Montag setze, Outlook öffne und Senden/Empfangen klicke passiert leider nichts. Freitag habe ich auch probiert.

If Weekday(Date, vbMonday) 5 Then

Heißt doch Montag oder? Für Freitag brauche ich nur vbFriday einsetzen oder?

So schaut es jetzt aus:

Option Explicit

Sub Senden()
Dim oTask As Outlook.TaskItem
Dim oMail As Outlook.MailItem
Dim oFld As Outlook.MAPIFolder
Const TEMPLATE_SUBJECT As String = „Daily Mail“
Const TEMPLATE_ADR As String = „[email protected]
Dim Txt As String
Txt = „Hallo Herr XXX,“ + vbCrLf + vbCrLf
Txt = Txt + „bitte teilen Sie uns die Anzahl der Leergut-Paletten die am Montag zu holen sind mit.“ + vbCrLf + vbCrLf
Txt = Txt & „Vielen Dank“ + vbCrLf + vbCrLf + vbCrLf
Txt = Txt & „Mit freundlichen Grüßen“ + vbCrLf + vbCrLf
Txt = Txt & „XXX“ + vbCrLf
Txt = Txt & „__________________________________________“ + vbCrLf + vbCrLf
Txt = Txt & „C & L Service GmbH“ + vbCrLf
Txt = Txt & „XXX“ + vbCrLf
Txt = Txt & „XXX“ + vbCrLf
Txt = Txt & „Telefon: +49 XXX“ + vbCrLf
Txt = Txt & „Telefax: +49 XXX“ + vbCrLf
Txt = Txt & „E -Mail: [email protected]“ + vbCrLf
Txt = Txt & „Internet: http://www.XXX.de“ + vbCrLf
Txt = Txt & „__________________________________________“ + vbCrLf + vbCrLf
Txt = Txt & „Geschäftsführer XXX“ + vbCrLf
Txt = Txt & „Amtsgericht XXX“ + vbCrLf
Txt = Txt & „Handelsregisterbuch XXX“ + vbCrLf
Txt = Txt & „Ust-Id-Nr. XXX“ + vbCrLf
Txt = Txt & „Steuer-Nr. XXX“
Set oMail = Application.CreateItem(olMailItem)
oMail.Subject = TEMPLATE_SUBJECT
oMail.Body = Txt
oMail.Recipients.Add TEMPLATE_ADR
oMail.Send
End Sub

Function SchonGesendet() As Boolean
Dim FF As Long, Satz As String
If Weekday(Date, vbMonday) 5 Then
SchonGesendet = True
Exit Function
End If
If Dir(„C:\OLTest/nul“) = „“ Then
MkDir „C:\OLTest“
FF = FreeFile
Open „C:\OLTest\Gesendet.txt“ For Output As #FF
Close #FF
End If
FF = FreeFile
Open „C:\OLTest\Gesendet.txt“ For Input As #FF
While Not EOF(FF)
Line Input #FF, Satz
Wend
Close #FF
If Satz = Format(Date, „yyyymmdd“) Then SchonGesendet = True
End Function

Hallo Patrick,

super das du dir die Mühe gemacht hast denn vom Programieren
habe ich null Ahnung. Sogar das Wort Makro ist mir nur als
Wort bekannt. Ich habe es nun einkopiert und bin auf Speichern
gegangen. Als E-Mail Adresse habe ich meine genommen. Wenn ich
jetzt Outlook schließe und das Datum auf nächsten Montag
setze, Outlook öffne und Senden/Empfangen klicke passiert
leider nichts. Freitag habe ich auch probiert.

was passiert denn beim Start von OL, kommt ein Fensterchen wo du auswählen mußt ob du mit makros oder ohne starten willst?

Wenn kein Fenster kommt, gehe auf Extras–Makro–Sicherheit und wähle da „Mittel“ aus, dann Ol beenden und neu starten.

If Weekday(Date, vbMonday) 5 Then

Heißt doch Montag oder? Für Freitag brauche ich nur vbFriday
einsetzen oder?

Der zweite parameter von Weekday gibt an welcher Tag der erste Tag der Woche ist.
Stelle den Curser auf das Wort „Weekday“ und drücke F1…

Gruß
Reinhard

Wenn kein Fenster kommt, gehe auf Extras–Makro–Sicherheit
und wähle da „Mittel“ aus, dann Ol beenden und neu starten.

So einfach kanns gehen :smile:

Der zweite parameter von Weekday gibt an welcher Tag der erste
Tag der Woche ist.
Stelle den Curser auf das Wort „Weekday“ und drücke F1…

Wenn ich das der Hilfe richtig entnehme brauche ich ja nur vbFriday angeben damit dann jeden Freitag die Mail versendet wird. Richtig? Oder ist es so angelegt, dass der Versand jeden Tag erfolgt? Wenn ja, wo kann ich es festlegen? So schlau, dass Feiertage erkannt werden und der Versand dann entweder Montag oder Donnerstag erfolgt ist VB bestimmt nicht oder?

Hallo Patrick,

Der zweite parameter von Weekday gibt an welcher Tag der erste
Tag der Woche ist.

Wenn ich das der Hilfe richtig entnehme brauche ich ja nur
vbFriday angeben damit dann jeden Freitag die Mail versendet
wird. Richtig? Oder ist es so angelegt, dass der Versand jeden
Tag erfolgt?

nein, laß da ruhig vbMonday stehen, damit wird festgelegt, daß der erste tag der Woche ein Montag ist, ergo ist dann der 5te tag der Freitag, diese 5 wird dann abgefragt.

Wenn es dir Spass macht dich zu verwirren, kannst du auch vbThuesday eintragen und dann die 7 abprüfen :smile:

So schlau,
dass Feiertage erkannt werden und der Versand dann entweder
Montag oder Donnerstag erfolgt ist VB bestimmt nicht oder?

Du mußt dem Code nur sagen an welchen Tagen die Feiertage sind, er weiß ja nicht ob er in Bayern oder in Hessen läuft.
Sicher, fast alle Feiertage kann man auch per Vba berechnen lassen, viele sind von Ostern abhängig und einige von Weihnachten.
Aber das finde ich hier zu aufwendig.

Nimm einen jahreskalender und schreibe dir die Donnerstage heraus o Freitags Feiertag ist, ggfs. den Mittwoch, wenn Do und Fr Feiertag sind.

Diese Datümer schreibst du dann in der Form „tt.mm.jj“ ins Modul1 in den Code der Funktion „IstSendetag“ in der zeile:
Tage = Array(„24.12.08“, „20.10.08“)

Anschließende stellst du den Curser in die Prozedur „KnopfErstellen“ und drückst F5. Dies brauchst du nur einmalig zu tun. Danach hast du oben in der Menuleiste rechts vom Fragezeichen ein neues Symbol, was dich aber nicht zu stören braucht, kannst eh nix mit machen *gg*
Der Code braucht das um dort Daten zu speichern.
Dadurch entfällt das Schreiben und Lesen der Txt-Datei.

Sub Senden()
Dim oTask As Outlook.TaskItem
Dim oMail As Outlook.MailItem
Dim oFld As Outlook.MAPIFolder
Const TEMPLATE\_SUBJECT As String = "Daily Mail"
Const TEMPLATE\_ADR As String = "[email protected]"
Dim Txt As String
Txt = "Hallo Herr XXX," + vbCrLf + vbCrLf
Txt = Txt + "bitte teilen Sie uns die Anzahl der Leergut-Paletten die am Montag zu holen sind mit." + vbCrLf + vbCrLf
Txt = Txt & "Vielen Dank" + vbCrLf + vbCrLf + vbCrLf
Txt = Txt & "Mit freundlichen Grüßen" + vbCrLf + vbCrLf
Txt = Txt & "XXX" + vbCrLf
Txt = Txt & "\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_" + vbCrLf + vbCrLf
Txt = Txt & "C & L Service GmbH" + vbCrLf
Txt = Txt & "XXX" + vbCrLf
Txt = Txt & "XXX" + vbCrLf
Txt = Txt & "Telefon: +49 XXX" + vbCrLf
Txt = Txt & "Telefax: +49 XXX" + vbCrLf
Txt = Txt & "E -Mail: [email protected]" + vbCrLf
Txt = Txt & "Internet: http://www.XXX.de" + vbCrLf
Txt = Txt & "\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_" + vbCrLf + vbCrLf
Txt = Txt & "Geschäftsführer XXX" + vbCrLf
Txt = Txt & "Amtsgericht XXX" + vbCrLf
Txt = Txt & "Handelsregisterbuch XXX" + vbCrLf
Txt = Txt & "Ust-Id-Nr. XXX" + vbCrLf
Txt = Txt & "Steuer-Nr. XXX"
Set oMail = Application.CreateItem(olMailItem)
oMail.Subject = TEMPLATE\_SUBJECT
oMail.Body = Txt
oMail.Recipients.Add TEMPLATE\_ADR
oMail.Send
End Sub
'
Function SchonGesendet() As Boolean
If Weekday(Date, vbMonday) 5 Then
 SchonGesendet = True
 Exit Function
End If
With Application.ActiveExplorer.CommandBars("Menu Bar")
 If .Controls("Datum").OnAction = Format(Date, "yyyymmdd") Then SchonGesendet = True
End With
End Function
'
Function IstSendetag()
Dim Tage, N, Vorh As Boolean
Tage = Array("24.12.08", "20.10.08")
IstSendetag = False
For N = 0 To UBound(Tage)
If Tage(N) = Format(Date, "dd.mm.yy") Then
 IstSendetag = True
 Exit For
End If
Next N
End Function
'
Sub KnopfErstellen()
Dim Knopf, Vorh As Boolean
With Application.ActiveExplorer.CommandBars("Menu Bar")
 For Each Knopf In .Controls
 If Knopf.Caption = "Datum\*" Then
 Vorh = True
 Exit For
 End If
 Next Knopf
 If Vorh = False Then
 Set Knopf = .Controls.Add(Type:=msoControlButton)
 With Knopf
 .Caption = "Datum"
 .Enabled = False
 .OnAction = ""
 End With
 End If
End With
End Sub

In „DieseOutlooksitzung“ änderst du den Code wie folgt ab:

Private Sub Application\_Startup()
If SchonGesendet = True And IstSendetag = False Then Exit Sub
Call Senden
With Application.ActiveExplorer.CommandBars("Menu Bar")
 .Controls("Datum").OnAction = Format(Date, "yyyymmdd")
End With
End Sub

Gruß
Reinhard

1 Like

Wie lange man wohl braucht um das alles zu lernen…

DANKE für die tolle Hilfe. Das zeichnet WWW aus.