Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1388to1392
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

Automatisch Email versenden - Probleme mit Makro

Automatisch Email versenden - Probleme mit Makro
31.10.2014 12:20:07
Christoph
Moin Moin,
mit nachfolgendem Makro (natürlich in Verbindung mit einem Weiteren), verschicke ich automatisch eine Email, wenn das heutige Datum mit einem bestimmten Datum einzelner Projekte übereinstimmt.
Sub testemail()
Dim objApp  As Outlook.Application
Dim objMail As Outlook.MailItem
Dim llast As Long
Dim i As Long
Dim wkb As Workbook
Dim wks As Worksheet
Set objApp = CreateObject("Outlook.Application")
Set objMail = objApp.CreateItem(olMailItem)
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(1)
llast = wks.UsedRange.SpecialCells(xlCellTypeLastCell).Row
sbody = ""
For i = 5 To llast
If wks.Cells(i, 8).Value = wks.Cells(2, 2).Value Then
ssubject = ssubject & " - " & wks.Cells(i, 1).Value & " " & wks.Cells(i, 2).Value
sbody = sbody & vbCrLf & "> " & wks.Cells(i, 1).Value & " " & wks.Cells(i, 2).Value
End If
Next i
objMail.To = "xy@gmy.de"
objMail.Subject = "+++ Vorlaufstart folgender Projekte" & ssubject & " +++"
objMail.Body = "Sehr geehrter XY," & vbCrLf & vbCrLf & "für nachfolgende Projekte muss ein  _
Kostenvoranschlag erstellt werden:" & vbCrLf & sbody
objMail.ReadReceiptRequested = True
objMail.Display
objMail.Send
Set objApp = Nothing
Set objMail = Nothing
End Sub
Es funktioniert soweit auch alles. Allerdings habe ich zwei Probleme, bei denen ich etwas auf dem Schlauch stehe, da meine VBA-Möglichkeiten sehr limitiert sind und ich mir alles gerade im Stile von 'learning by doing' versuche anzueignen.
1.) Wenn das heutige Datum mit keinem der Projektdaten übereinstimmt, wird trotzdem eine Email mit dem Inhalt von objMail.Subject und objMail.Body versendet. Muss ich beides in die If-Schleife integrieren, um zu verhindern, dass überhaupt eine Email versendet wird, wenn die If-Bedingung nicht zutrifft?
2.) Die zu Grunde liegende Tabelle wird von mir und noch zwei weiteren Kollegen genutzt. Gibt es eine Möglichkeit mit der ich sicherstellen kann, dass die Email nur ein einziges Mal gesendet wird? Nicht dass bspw. ich die Tabelle am Tag als erstes öffne und die Email versendet wird und Kollege B dann beim öffnen auch nochmals eine Mail verschickt. Überdies wäre es natürlich schön, wenn die Email immer von der gleichen Adresse versendet wird. Man könnte es natürlich so machen, dass nur ich die Version mit dem Makro habe, aber dies ist nicht praktikabel, da wir alle in einer Datei arbeiten müssen.
Für Denkanstöße wäre ich unendlich dankbar und wünsche jedem im Forum ein wunderschönes Wochenende.
VG, Christoph

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch Email versenden - Probleme mit Makro
31.10.2014 12:32:39
Rudi
Hallo,
1.
.....
Next i
if ssubject "" Then
objMail.To = "xy@gmy.de"
objMail.Subject = "+++ Vorlaufstart folgender Projekte" & ssubject & " +++"
objMail.Body = "Sehr geehrter XY," & vbCrLf & vbCrLf & "für nachfolgende Projekte muss ein  _
_
Kostenvoranschlag erstellt werden:" & vbCrLf & sbody
objMail.ReadReceiptRequested = True
objMail.Display
objMail.Send
end if

2. Schreib das Sendedatum in eine Zelle und frag es ab.
....
If sheets(1).Range("A1") Date then
Set objApp = CreateObject("Outlook.Application")
objMail.send
sheets(1).Range("A1")=Date
.....

Gruß
Rudi

Anzeige
AW: Automatisch Email versenden - Probleme mit Makro
31.10.2014 12:46:10
fcs
Hallo Christoph,
du muss eine Prüfung einbauen, ob die Body-Variable nach dem durchlaufen der For-Next-Schleife Inhalt hat. Wenn die For-Next-Schleife nur einen Treffer enthalten kann, dann kannst du den Senden-Code auch in den If-Part innerhalb der Schleife verschieben.
Den doppelten Versand kannst du vermeiden, indem das Makro in eine Testzelle nach dem Versand das aktuelle Datum einträgt. Zu Beginn des Makros wird geprüft, ob das Datum in der Testzelle = dem aktuellen Datum ist und das Makro ggf. beendet.
Bei der Sender-Adresse kann ich nicht weiterhelfen. Meines Wissens kann man nicht mit der gleichen Absender-Adressen aus verschiedenen E-Mail-Accounts heraus senden.
Gruß
Franz
Sub testemail()
Dim objApp  As Outlook.Application
Dim objMail As Outlook.MailItem
Dim llast As Long
Dim i As Long
Dim wkb As Workbook
Dim wks As Worksheet
Set objApp = CreateObject("Outlook.Application")
Set objMail = objApp.CreateItem(olMailItem)
Set wkb = ThisWorkbook
Set wks = wkb.Sheets(1)
'Prüfen ob heute schon E-Mail versendet
If wks.Range("X1").Value = Date Then
MsgBox "E-Mail wurde heute schon gesendet"
GoTo Beenden
End If
llast = wks.UsedRange.SpecialCells(xlCellTypeLastCell).Row
sbody = ""
For i = 5 To llast
If wks.Cells(i, 8).Value = wks.Cells(2, 2).Value Then
ssubject = ssubject & " - " & wks.Cells(i, 1).Value & " " & wks.Cells(i, 2).Value
sbody = sbody & vbCrLf & "> " & wks.Cells(i, 1).Value & " " & wks.Cells(i, 2).Value
End If
Next i
If sbody  "" Then
objMail.To = "xy@gmy.de"
objMail.Subject = "+++ Vorlaufstart folgender Projekte" & ssubject & " +++"
objMail.Body = "Sehr geehrter XY," & vbCrLf & vbCrLf & _
"für nachfolgende Projekte muss ein Kostenvoranschlag erstellt werden:" _
& vbCrLf & sbody
objMail.ReadReceiptRequested = True
objMail.Display
objMail.Send
'Datum in Testzelle für E-Mail-Versand eintragen
wks.Range("X1").Value = Date
Else
MsgBox "Keine Daten zum Versenden per E-Mail gefunden!"
End If
Beenden:
Set objApp = Nothing
Set objMail = Nothing
End Sub

Anzeige
AW: Automatisch Email versenden - Probleme mit Makro
31.10.2014 13:31:58
Christoph
Hallo Rudi, Hallo Franz,
vielen Dank für Eure Hilfe. Ihr habt mir wirklich sehr geholfen. Konnte das Ganze jetzt nochmal gut nachvollziehen, was mich in meinem VBA-Wissen sicher auch voran gebracht hat.
Vielen Dank und einen schönen Tag + entspanntes WE Euch.
VG, Christoph

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige