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

#91

Beitrag von d'r Bastler »

Moin Jens,

Du bist eifrig und erfolgreich im VBA-Lernen. Dafür nicht zum ersten Mal: Ein großes Kompliment.

Was Du leider nicht wirklich gut kannst, ist Fragen beantworten. Nicht erst die letzten fünf (vergiss sie einfach) blieben leider ohne Antwort. So ist eine Zusammenarbeit ein bisschen schwierig. Ich will Dein Projekt aber noch nicht aufgeben und mich auch ohne Deine intensivere Zuarbeit um eine Lösung kümmern.

Allerdings benötige ich dazu die Information mit welchen Versionen Du arbeitest:

angefangen bei Windows, Excel/Office über Domino Server, Lotus Notes Client (Nomad?) und alle andere beteiligte Software. Falls Du es nicht hier veröffentlichen willst, gerne per PN, aber bitte einigermaßen zeitnah. Ich hoffe, Du schaffst das ... :o , falls nicht, frage bitte Admins, Kollegen usw.

lg
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

#92

Beitrag von Hobbit »

Moin,
tut mir leid das meine Antworten zu Knapp sind.
Dann fangen wir mal mit der Liste an:

Windows: Win 10 Pro
Office: Pro Plus 2013 über Server
Notes: IBM Notes 10

das war es.


Wenn noch etwas fehlen sollte, gerne melden.

Vielen Dank für die Eifrige Unterstützung.
Folgende Benutzer bedankten sich beim Autor Hobbit für den Beitrag:
d'r Bastler
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

#93

Beitrag von d'r Bastler »

Moin Jens,

wie ich inzwischen erfahren habe, wurde jeglicher Support für Domino 10 im Juni dieses Jahres endgültig eingestellt. Das scheint ähnlich veraltet zu sein, wie Euer Office 2013 (drei-zehn? oder war das ein Tippfehler?) Was nicht bedeutet, dass wir das Thema hier nicht doch gebacken bekommen...

Im Nachfolge-Produkt Lotus HCL gibt es wohl schon seit zwei Versionen eine eingebaute Serien-Mail-Funktion, die alle Deine Wünsche wahr werden lässt! Ob eine oder viele Mails, alle individualisiert und direkt aus XL.

Ich weiß ja nicht, wie viele IT-Nutzer Ihr in NRW da so habt - aber wenn sich da mal ein paar Kollegen mit qualifizierten Vorschlägen vor den Chef stellen und erklären, dass sie keine IT-Steinzeit-Menschen mehr sein wollen, vielleicht hilft's :P

Viel Erfolg & lg
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

#94

Beitrag von Hobbit »

Moin,

wie ich ja schon mal geschrieben hatte, bin ich hier im tiefsten Mittelalter gelandet, was die Technik angeht.

Es ist tatsächlich Office 2013.
Unsere IT hat ja nicht mal hinbekommen, das unsere Ladebelege per Doppelklick alle auf einmal rauskommen mit den dazugehörigen Daten.
Das habe ich erst hier alles ermöglicht, weil wir es am Vorherigen Standort so schon hatten, bis SAP es abgelöst hat.

Ich finde es Top wie du dich da reinhängst.
Soviel Hilfe hätte ich nicht erwartet.
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

#95

Beitrag von d'r Bastler »

Was soll ich dazu sagen? Her mit den Ladebelegen! Das biegen wir auch noch hin... :lol:

Falls Du morgen früh noch nichts zum Testen siehst, liegt's am Fress-Koma, das mich vermutlich gleich erwischen wird ...

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
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

#96

Beitrag von d'r Bastler »

Moin Jens,

Fresskoma überwunden, die Grauen Zellen etwas entschlackt, machen wir uns mal an unsere (wie glaube vielversprechende) Versuche. Dazu nutzt Du in einer leeren Mappe den folgenden Code (Allg. Modul), um Dir eine Testumgebung vorzubereiten:

Code: Alles auswählen

Option Explicit
Sub MakesSheets()
Dim i As Integer
Dim sMailto As String, sCopyTo As String, sSubject As String

sMailto = "test@test.info"
sCopyTo = "copy@test.info"

With ActiveSheet
        .Cells(1, 1) = sMailto
        .Cells(1, 2) = sCopyTo
        .Cells(1, 3) = ActiveSheet.Name
End With

For i = 1 To 49
    ThisWorkbook.Sheets.Add
    With ActiveSheet
        .Cells(1, 1) = sMailto
        .Cells(1, 2) = sCopyTo
        .Cells(1, 3) = ActiveSheet.Name
    End With
Next i
Sheets("Tabelle1").Activate
End Sub
Als Ergebnis erhältst Du 50 Sheets mit fiktiven Mail-Adressen und dem Namen des Sheets. In Blatt 1 setzt Du bitte als Empfänger eine gültige Adresse ein.

Die Versand-Prozeduren benötigen noch etwas Feinschliff, an dem ich gerade dran bin. Die kommen dann in Form von zwei kleinen Modulen für SingleMail und MultiMail. Ich hoffe, dass dann eine gute Grundlage dafür ist, sie leicht an Deine Mappen anzupassen.

lg
d'r Bastler von den VBAsteleien.de
Win 10 + Office 2019 & Win11 + Office 2021 + Visio 2019 pro & macOS.X15 + Office2019pro & Android12 & XL365
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

#97

Beitrag von d'r Bastler »

Okay - next step:

Hier erst einmal der Code für den direkten Versand eines Sheets. Bei mir liegt er im Modul mdlSingleMail der Testmappe:

Code: Alles auswählen

Option Explicit
Const EMBED_ATTACHMENT As Long = 1454

Sub SingleMail()
Dim sMailTo As String, sCopyTo As String, sSubject As String, sPDF As String, sBody As String, iMails As Integer
Dim sht As Worksheet
    
    ' Schleife durch alle Sheets des WorkBooks, in VBA etwas gefiltert, in LN also ohne Bedeutung
    With ActiveSheet
        
        ' Füllen der Variablen
        sMailTo = .Cells(1, 1)
        sCopyTo = .Cells(1, 2)
        sSubject = .Cells(1, 3)
        sPDF = ThisWorkbook.Path & "\Test " & Date & " " & Timer & ".pdf"
        sBody = "Das Protokoll vom " & Date
        
        'erstellt ein PDF des aktiven Sheets im Verzeichnis des Aufrufs
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPDF, _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, _
        IgnorePrintAreas:=True, OpenAfterPublish:=True
        
        ' Übergabe der Variablen an LN
        Send_LN_Mail sMailTo, sCopyTo, sSubject, sPDF, sBody
    
    End With

End Sub

Sub Send_LN_Mail(sMailTo As String, sCopyTo As String, sSubject As String, sPDF As String, sBody As String)
Dim LN_Session As Object, LN_Database As Object, LN_Document As Object
Dim LN_Workspace As Object, LN_EmbedObject As Object, LN_attachement As Object

' Laden der Lotus COM Objekte
    Set LN_Session = CreateObject("Notes.NotesSession")
    Set LN_Database = LN_Session.GETDATABASE("", "")

'Falls Notes nicht geöffnet ist
    If LN_Database.IsOpen = False Then LN_Database.OPENMAIL
    
' Email erstellen
    Set LN_Document = LN_Database.CreateDocument
    Set LN_attachement = LN_Document.CreateRichTextItem("sPDF")
    Set LN_EmbedObject = LN_attachement.EmbedObject(EMBED_ATTACHMENT, "", sPDF)

    With LN_Document
        .Form = "Memo"
        .sendTo = sMailTo
        .copyTo = sCopyTo
        .Subject = sSubject
        .body = sBody
        .Send False
    End With

' Jetzt Notes los ...!
    Set LN_Workspace = CreateObject("Notes.NotesUILN_Workspace")
    Call LN_Workspace.EDITDOCUMENT(True, LN_Document).GOTOFIELD("Body")
    
' Speicher leeren
    Set LN_EmbedObject = Nothing
    Set LN_attachement = Nothing
    Set LN_Document = Nothing
    Set LN_Database = Nothing
    Set LN_Session = Nothing

    MsgBox "Mail wurde versandt. Bitte zu NOTES wechseln"

End Sub
Die zweite Runde geht an den Versand mehrerer Sheets mit individuellen Inhalten. Dieser Code gehört ins Modul mdlMultiMails.

Code: Alles auswählen

Option Explicit
Const EMBED_ATTACHMENT As Long = 1454

Sub MultiMail()
'XL-Variablen:
Dim sMailTo As String, sCopyTo As String, sSubject As String, iMails As Integer
Dim sPDF As String, sBody As String, sht As Worksheet
'LN-Variablen:
Dim LN_Session As Object, LN_Database As Object, LN_Document As Object
Dim LN_Workspace As Object, LN_EmbedObject As Object, LN_attachement As Object
    
'>>>>> XL-relevant: <<<<<

    'Schleife durch alle Sheets des WorkBooks per VBA gefiltert
    Application.ScreenUpdating = False
    For Each sht In ThisWorkbook.Sheets
    
        'Filter
        If Left(sht.CodeName, 4) <> "tab_" Then
            sht.Activate
            With ActiveSheet
            
                'Füllen der Variablen
                sMailTo = .Cells(1, 1)
                sCopyTo = .Cells(1, 2)
                sSubject = .Cells(1, 3)
                sPDF = ThisWorkbook.Path & "\Test " & Date & " @ " & Timer & ".pdf"
                sBody = "Das Protokoll vom " & Date
                iMails = iMails + 1
                
                'erstellt ein PDF des aktiven Sheets im Verzeichnis des Aufrufs
                .ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPDF, _
                Quality:=xlQualityMinimum, IncludeDocProperties:=False, _
                IgnorePrintAreas:=True, OpenAfterPublish:=False
            End With

''>>>>> LN-relevant: <<<<<

            'Laden der Lotus COM Objekte
            Set LN_Session = CreateObject("Notes.NotesSession")
            Set LN_Database = LN_Session.GETDATABASE("", "")

            'Falls Notes nicht geöffnet ist
            If LN_Database.IsOpen = False Then LN_Database.OPENMAIL

            'Email erstellen
            Set LN_Document = LN_Database.CreateDocument
            Set LN_attachement = LN_Document.CreateRichTextItem("sPDF")
            Set LN_EmbedObject = LN_attachement.EmbedObject(EMBED_ATTACHMENT, "", sPDF)

            With LN_Document
                .Form = "Memo"
                .sendTo = sMailTo
                .copyTo = sCopyTo
                .Subject = sSubject
                .body = sBody
                .Save True, False
            End With

            'Jetzt Notes es los ...!
            Set LN_Workspace = CreateObject("Notes.NotesUILN_Workspace")
            Call LN_Workspace.EDITDOCUMENT(True, LN_Document).GOTOFIELD("Body")

            'LN_Document.Save(true, false)

            'Speicher für aktuelle Mail leeren
            Set LN_Document = Nothing
            Set LN_attachement = Nothing

''>>>>> XL-relevant: <<<<<
        
        'Filter-Ende
        End If
        
    'Schleifen-Return
    Next
    Application.ScreenUpdating = True
        
        'Speicher für LN leeren
            Set LN_EmbedObject = Nothing
            Set LN_Database = Nothing
            Set LN_Session = Nothing
            
        MsgBox iMails & " Mails für den Versand vorbereitet, bitte zu NOTES > ENTWÜRFE wechseln."

End Sub
Was in den Subs jeweils passiert, ist in den Kommentaren beschrieben. Den Aufruf für beide Versionen findest Du im Makromenü Alt + F8.

Mangels Testumgebung kann ich Fehlermeldungen natürlich überhaupt nicht ausschließen. Hier bist Du gefragt: Fehlermeldungen am liebsten als Screenshot, in dem auch die Fehlerzeilen sichtbar sind.

Viel Erfolg! & lg
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

#98

Beitrag von Hobbit »

Moin,

das ist schon mal top.

Es wird auch Versendet und kommt auch an, aber es kommt dann die Fehlermeldung:

Objekterstellung durch ActiveX- Komponente nicht möglich.
In der Spalte Jetzt Notes los...!
Set LN_Workspace = CreateObject("Notes.NotesUILN_Workspace")
Das ist die Fehlerspalte.
Aber es Funktioniert komischerweise.

Danke für die Tolle Unterstützung.
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

#99

Beitrag von d'r Bastler »

Jens bitte: Single oder MultiMail??
Zuletzt geändert von d'r Bastler am 13. Sep 2024, 15:29, insgesamt 1-mal geändert.
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

#100

Beitrag von Hobbit »

Single

Ich konnte das Multi noch nicht Testen.

Kann ich leider erst Montag machen.

Vielen Dank für die Hammer Unterstützung und ein schönes Wochenende.
MFG Jens
Antworten

Wer ist online?

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