Du benutzt meine
?For Each sht In wb.sheets
Dann setze (angepasst natürlich) diesen Code ein:
Code: Alles auswählen
If sht.Name <> "Aushang" then
'Dein Code zum Verschicken
end if
Viel Erfolg
?For Each sht In wb.sheets
Code: Alles auswählen
If sht.Name <> "Aushang" then
'Dein Code zum Verschicken
end if
in welchem Arbeitsblatt?Zum Beispiel in Zelle P3 soll der Text stehen
Woher kommendie "18" Adressaten?Ich möchte, wenn ich auf dem Button drücke (...)
Ich nehme an im Mailprogramm (Lotus Notes),nicht?Es werden jetzt zur Zeit 18 Fenster geöffnet (..)
Code: Alles auswählen
Option Explicit
Const EMBED_ATTACHMENT As Long = 1454
Const sSubject As String = "Einsatzplan"
Const sMSG As String = "Moin, im Anhang ist der Neue Einsatzplan für die im Betreff stehende Woche"
Const sCopyTo As String = ""
Sub Send_Active_Fahrer()
Dim sMailTo As String, sAttachment As String
Dim noSession As Object, noDatabase As Object, noDocument As Object
Dim noEmbedObject As Object, noAttachment As Object, workspace As Object
Dim wb As Workbook, sht As Worksheet, iMails As Integer
Set wb = ThisWorkbook
Application.ScreenUpdating = False
For Each sht In wb.Sheets
sht.Activate
If sht.Name <> "Aushang" Then
'Dein Code zum Verschicken
' erstellt das PDF von Seite 1 im gleichen Ordner, wie sich das Workbook befindet
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\Einsatzplan.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=True
' Bereitstellung des Emailanhangs
sAttachment = ThisWorkbook.Path & "\Einsatzplan.pdf"
' Empängerliste (bei automatischem Versand) Array
sMailTo = Cells(1, 16)
' Laden der Lotus COM Objekte
Set noSession = CreateObject("Notes.NotesSession")
Set noDatabase = noSession.GETDATABASE("", "")
'Falls Notes nicht geöffnet ist
If noDatabase.IsOpen = False Then noDatabase.OPENMAIL
' Email erstellen
Set noDocument = noDatabase.CreateDocument
Set noAttachment = noDocument.CreateRichTextItem("sAttachment")
Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", sAttachment)
With noDocument
.Form = "Memo"
.sendTo = sMailTo
.copyTo = sCopyTo
' vorgegebens Subjekt
.subject = Cells(1, 17).Value
.SaveMessageOnSend = True
.PostedDate = Now()
'.Send 0, sMailTo
End With
Set workspace = CreateObject("Notes.NotesUIworkspace")
Call workspace.EDITDOCUMENT(True, noDocument).GOTOFIELD("Body")
' Speicher leeren
Set noEmbedObject = Nothing
Set noAttachment = Nothing
Set noDocument = Nothing
Set noDatabase = Nothing
Set noSession = Nothing
iMails = iMails + 1
End If
Next 'sht
Application.ScreenUpdating = True
MsgBox iMails & " erstellt. Bitte wechseln Sie zu NOTES", vbInformation
End Sub
Die drei Individualen kannst Du auf die gleiche Weise aus dem jeweiligen Tabellenblatt ziehen, wie schon die E-Mail-Adresse. Das aktuelle Datum kommt aus XL. Das dann in die Variable sMSG zu basteln, ist leider etwas unübersichtlich, aber machbar. Hier ein Beispiel, das Du als Code in einem Modul testen kannst.Moin [Fahrername],
hier Dein Dienstplan vom [Datum] für die Zeit
von [Beginn] bis [Ende]
Schöne Grüße Jens
Code: Alles auswählen
Sub sMSG_Test()
Dim sMSG As String
With ActiveSheet
sMSG = "Moin " & _
.Cells(1, 1) & "," & vbNewLine & vbNewLine & _
"hier Dein Dienstplan vom " & Date & " für die Zeit von " & vbNewLine & _
vbNewLine & vbTab & .Cells(1, 2) & " bis " & .Cells(1, 3) & "." & vbNewLine & vbNewLine & _
"Schöne Grüße, Jens"
End With
MsgBox sMSG
End Sub
Mitglieder in diesem Forum: Ahrefs [Bot] und 0 Gäste