Seriendruck Pläne per Mail verschicken

.. das wohl mächtigste Werkzeug in Bill Gates' Büro-Sippe. Ob reine Formeln, PowerQuery oder VBA. Hier bleiben kaum Wünsche unerfüllt.
Benutzeravatar
d'r Bastler
Beiträge: 670
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 175 Mal
Danksagung erhalten: 90 Mal

Re: Seriendruck Pläne per Mail verschicken

#61

Beitrag von d'r Bastler »

Moin Jens,

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
So wird der Code nur ausgeführt, wenn das Sheet nicht Aushang heißt.

Viel Erfolg
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
thowe
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Hobbit
Beiträge: 51
Registriert: 12. Aug 2024, 08:41
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Seriendruck Pläne per Mail verschicken

#62

Beitrag von Hobbit »

Vielen Dank,
hat wunderbar geklappt.
Folgende Benutzer bedankten sich beim Autor Hobbit für den Beitrag:
d'r Bastler
MFG Jens
Hobbit
Beiträge: 51
Registriert: 12. Aug 2024, 08:41
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Seriendruck Pläne per Mail verschicken

#63

Beitrag von Hobbit »

Moin,
ich nochmal.

Gibt es die Möglichkeit einen Text zu hinterlegen, der in der Email Automatisch eingetragen wird?

Und kann man es so einstellen, das die Mail Automatisch versendet wird.

Vielen dank für die Mühe.
MFG Jens
Benutzeravatar
thowe
Beiträge: 196
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 78 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Seriendruck Pläne per Mail verschicken

#64

Beitrag von thowe »

Hallo Jens!

Die Antwort kann nur "JA" lauten.
-> es ist natürlich möglich.
Nun konkreter Rückfragen!

Wo möchtest/wirst du den Text hinterlegen?
-> zB in einem bestimmten Arbeitsblatt
-> oder beispielsweise in einr .txt Datei vorgehalten?

Dann, was beeutet, die E-Mail wird automatisch gesendet.
Nach welchem Event/Trigger.
-> zB Schließen der Arbeitsmappe,
-> Click auf einen Button
-> Jeden Tag um 03:00 MEZ?

Wir helfen dir gerne, und freuen uns wenn es noch nähere Infos kommen, lieber Jens

lg, thowe
Hobbit
Beiträge: 51
Registriert: 12. Aug 2024, 08:41
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Seriendruck Pläne per Mail verschicken

#65

Beitrag von Hobbit »

Moin,
das hört sich ja gut an, das es klappt.

Zum Beispiel in Zelle P3 soll der Text stehen.

Ich möchte, wenn ich auf dem Button drücke, das die Mail direkt versendet wird ohne das ich im Mailprogramm jede einzelne Mail versenden muss.

Es werden jetzt zur Zeit 18 Fenster geöffnet und dann muss ich alle einzeln Versenden.

Vielen dank für die Mühe.
MFG Jens
Benutzeravatar
thowe
Beiträge: 196
Registriert: 12. Sep 2022, 16:57
Hat sich bedankt: 78 Mal
Danksagung erhalten: 67 Mal
Kontaktdaten:

Re: Seriendruck Pläne per Mail verschicken

#66

Beitrag von thowe »

Moin Jens,

wir kommen - doch - weiter. Schön!
Zur Erklrärung:
Ich habe bis jetzt deine Lösung NICHT heruntergeladen.
Ich denke mir, vorab ist wichtig(er) wie wir zu deiner angedachten Lösung kommen.
Dahin möchte ich dich führen, denn du weißt - ja - natürlich was du möchtest...
Zum Beispiel in Zelle P3 soll der Text stehen
in welchem Arbeitsblatt?
Ich möchte, wenn ich auf dem Button drücke (...)
Woher kommendie "18" Adressaten?
Es werden jetzt zur Zeit 18 Fenster geöffnet (..)
Ich nehme an im Mailprogramm (Lotus Notes),nicht?

lg
Hobbit
Beiträge: 51
Registriert: 12. Aug 2024, 08:41
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Seriendruck Pläne per Mail verschicken

#67

Beitrag von Hobbit »

Moin,
ich möchte in jedem Arbeitsblatt etwas eintragen können, wenn es geht?

Die 16 Adressdaten sind jeweils im Blatt P1 hinterlegt bei den jeweiligen Fahrern.

Und ja ich habe Notes.

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





     
Vielen dank.
MFG Jens
Benutzeravatar
d'r Bastler
Beiträge: 670
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 175 Mal
Danksagung erhalten: 90 Mal

Re: Seriendruck Pläne per Mail verschicken

#68

Beitrag von d'r Bastler »

Moin Ihr zwei,

in meinem Snippet #54 gibt es schon von Dir in den ersten Zeilen eine Variable sMSG, die mit einem Text gefüllt werden kann. Der ließe sich durch das Zusammensetzen von fixem Text und weiteren Details sehr flexibel gestalten. Allerdings darfst Du sie dann nicht als Public Const, sondern einfach als String in der Sub deklarieren.
Moin [Fahrername],

hier Dein Dienstplan vom [Datum] für die Zeit

von [Beginn] bis [Ende]

Schöne Grüße Jens
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.

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
Du siehst im Code Zeilenumbrüche vbNewLine und Einrückungen vbTab. Mit denen kannst Du den Text im Mail-Body übersichtlich gestalten. Die Individualen habe ich aus A1 - C1 gezogen. Sehr Fehler-vermeiden ist die Angewohnheit die Zeilen (bis auf die letzte), aus denen der Text zusammengesetzt wird, jeweils mit "& _" (Kaufmann+Leerzeichen+Unterstrich) zu beenden. Auch musst Du in den Textteilchen die führenden und folgenden Leerzeichen bedenken.

Der Code gehört dann in einen Bereich, in dem jeweils ein Sheet aktiviert ist, damit auch die richtigen Informationen gezogen werden können.

Viel Erfolg!
lg
Folgende Benutzer bedankten sich beim Autor d'r Bastler für den Beitrag:
thowe
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Hobbit
Beiträge: 51
Registriert: 12. Aug 2024, 08:41
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: Seriendruck Pläne per Mail verschicken

#69

Beitrag von Hobbit »

Moin,
wenn ich aber in der Const sMSG As String = "" einen Text eintrage, übernimmt er es nicht im Mail Programm.
Das würde mir ja schon reichen.
Idealer weise Natürlich aus der Zelle P3.

Vielen Dank.
MFG Jens
Benutzeravatar
d'r Bastler
Beiträge: 670
Registriert: 29. Aug 2022, 13:20
Hat sich bedankt: 175 Mal
Danksagung erhalten: 90 Mal

Re: Seriendruck Pläne per Mail verschicken

#70

Beitrag von d'r Bastler »

Moin!
Vergiss die Constante, bau Dir den Body aus den String-Schnipseln. Das ist viel flexibler.

Nenn mir bitte die Zelladressen für Fahrername, erste Schicht / letzte Schicht und ich bau Dir heute Nachmittag noch was, okay?

lg
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
Antworten

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot] und 0 Gäste