Diese Frage wurde hier schon öfter gestellt. Meine Problematik ist jedoch leider etwas verzwickter, da jede E-Mail zu einem anderen Empfänger muss mit einem angepassten Inhalt und einem angepassten Betreff. Und dies auch noch zu einem bestimmten Zeitpunkt. Ich bräuchte also If - Bedingungen oder Wenn - Bedingungen .
Ich habe folgendes Problem: Naht ein bestimmtes Datum, soll ein bestimmter Empfänger gefragt werden ob er Projekt XY zu diesem bestimmten Datum beenden wird. Die Projektnummer soll zusammen mit dem Text „Ihr Projekt Nummer XY“ im Betreff stehen. Ebenso angepasst in Bezug auf die Anschrift, die Projektnummer und das Datum, soll der Text der E-Mail sein. Die Daten dafür sind dann auch noch auf verschiedenen Tabellenblättern. Diese E-Mail(s) versende ich manuell. Generiert werden sollen sie aber automatisch.
Leider kann ich den VBA Code nicht.
Weiß jemand eine Lösung?
Vielen Dank im Voraus.
Dieses Makro habe ich schon zur Verfügung und sollte dort eine If - Bedingung einbauen. Leider ist mir völlig unbekannt wie.
Sub BereichAlsEMailVersenden()
Dim Empänger, Titel As String
Dim n As Range
Empfänger = „[email protected]“
Titel = „Excel-Bereich als Anhang“
Set n = Application.InputBox _
(„Wählen Sie den Bereich aus, den Sie versenden möchten“, Type:=8)
Range(n.Address).Select
Selection.Copy
Worksheets.Add
ActiveSheet.Paste
ActiveWorkbook.SaveAs „Anhang.xls“
Application.Dialogs(xlDialogSendMail).Show Empfänger, Titel
End Sub
Salve
da kommen so viele Probleme zusammen, die bisher nur unzureichend beschrieben sind und die ohne VBA-Kenntnisse auch nur schwer zu lösen sind.
Zuerst müsste so eine Art Grunddatenblatt gepflegt werden, wo z.B. die Projektnummern und die Soll-Termine stehen.
Dann müssten diese Termine in einer Schleife mit einem Workbook_Open Ereignis abgefragt werden.
Dann braucht man wahrscheinlich eine UserForm mit Listbox, in der die Blattnamen stehen, die zu den Projekten passen.
Steht der zu kopierende Bereich immer in demselben Blatt oder auch in unterschiedlichen?
usw usw
hier mal eine grobe Lösung ohne UserForm und Workbook_Open Ereignis
Sub mailinski()
Dim OutApp As Object, Mail As Object
Dim Nachricht
Dim Nachrichtentext As String
Dim Empfänger As String
Dim Betreff As String
Dim Anhang As String
Dim shMail As Worksheet
Dim n As Range
Dim pfad As String
'Blattname festlegen, aus dem die MailDaten eingelesen werden sollen
'falls diese Blätter wechseln, Blattnamen per UserForm einlesen und Wahl übergeben
Set shMail = ActiveWorkbook.Sheets("Tabelle3")
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
'Empfänger festlegen, steht in A1
Empfänger = shMail.Cells(1, 1)
'Betreff festlegen, steht in A2
Betreff = "Ihr Projekt Nummer " & shMail.Cells(2, 1)
'Nachrichtentext festlegen, steht in A3
Nachrichtentext = shMail.Cells(3, 1)
pfad = ThisWorkbook.Path
Set n = Application.InputBox _
("Wählen Sie den Bereich aus, den Sie versenden möchten", Type:=8)
Range(n.Address).Select
Selection.Copy
Workbooks.Add
ActiveSheet.Paste
'speichern unter "Anhang.xls" im selben Pfad der aktiven Datei mit diesem Makro
ActiveWorkbook.SaveAs pfad & "\Anhang.xls"
pfad = pfad & "\Anhang.xls" 'Pfad und Dateiname in String
'Daten in Mail eintragen
With Nachricht
'Text für Betreffzeile wird eingefügt
.Subject = Betreff
'Zwischenablage wird eingefügt
.Body = Nachrichtentext
'In die Zeile "An" wird der Empfänger eingetragen
.To = Empfänger
'Dateianhang
.Attachments.Add pfad
'Hier wird die Mail angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'.Send
End With
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub