Anzeige
Archiv - Navigation
1632to1636
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

Dynamischer Dateianhang // Abstimmungsschaltfläche

Dynamischer Dateianhang // Abstimmungsschaltfläche
13.07.2018 16:06:15
Yanek
Hallo zusammen,
ich habe zwei Dinge, die ich gerne in den folgenden Code einbauen möchte:
Sub Schaltfläche_Klicken()
On Error GoTo ErrHandler
' SET Outlook APPLICATION OBJECT.
Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")
' CREATE EMAIL OBJECT.
Dim objEmail As Object
Set objEmail = objOutlook.CreateItem(olMailItem)
With objEmail
.to = Sheets("XXX_v1").Range("A36").Text
.Subject = "YYY von " & Sheets("XXX_v1").Range("B4").Text & " " &
Sheets("XXX_v1").Range("A4").Text & _
"  |  YYY vom " & Sheets("XXX_v1").Range("A9").Text & " bis
einschließlich " & Sheets("XXX_v1").Range("B9").Text & _
"  |  Anzahl der YYY: " & Sheets("XXX_v1").Range("C9").Text
.body = "Lieber " & Sheets("XXX_v1").Range("C25").Text & "," & Chr(13) & Chr(13) & _
"anbei ..." & Chr(13) & Chr(13) & _
"Über ..." & Chr(13) & Chr(13) & _
"Liebe ..." & Chr(13) & Chr(13) & _
Sheets("XXX_v1").Range("B4").Text
'.Send
.Attachments.Add ("C:\Benutzerdaten\XXX.XXX\Eigene Dateien\XXX.xlsm")
.VotingOptions = "Genehmigt;Abgelehnt"
.display
End With
' CLEAR.
Set objEmail = Nothing
Set objOutlook = Nothing
ErrHandler:
End Sub

1. Als erstes würde ich gerne den Dateipfad des Anhangs dynamisch gestalten. Das Problem ist, dass die Personen, die Datei benutzen sollen, diese zukünftig aus einem Sharepoint runterladen und die Datei an einem beliebigen Ort abspeichern werden. Da die Datei nach Bearbeitung in Excel über Outlook versendet werden soll, inklusive der Datei, müsste man ja jedesmal den Dateipfad anpassen. Oder gibt es eine Alternative?
2. "Genehmigt" der Empfänger zukünftig die Datei durch die Abstimmungsschaltfläche soll die Datei (inkl. Inhalt und Anhang) wieder an den Versender zurückgesendet werden und auch an eine festgelegte, weitere Person im CC. Wird die Datei "abgelehnt", soll die Datei (inkl. Inhalt und Anhang) nur an den Versender zurückgehen.
Vielen Dank für eure Hilfe
Yanek

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamischer Dateianhang // Abstimmungsschaltfläche
13.07.2018 17:08:37
ChrisL
Hi
Ich benutze weder Outlook noch Sharepoint, darum nur eine theoretische Antwort von mir. (darum ggf. bei Antwort den Beitrag als "offen" markieren)
1.
Mit Hilfe von Dr. Google eine Script für den Download von Sharepoint programmieren :) z.B.
https://www.herber.de/forum/archiv/1500to1504/1501382_Sharepoint_und_VBA.html
https://stackoverflow.com/questions/42419486/how-to-download-a-file-from-sharepoint-with-vba
Oder den Pfad z.B. mit Hilfe eines "GetOpenFilename" Dialogs abfragen.
2.
Den Sender kannst du nachträglich vermutlich nicht mehr ermitteln. Darum vor Versand in die Datei speichern.
Worksheets("Tabelle1").Range("A1") = "meinemail@maily.com"
ThisWorkbook.Save
Je nach Ausgangslage kannst du evtl. auch ein User-ID o.ä. verwenden.
Worksheets("Tabelle1").Range("A1") = Environ("Username")
ThisWorkbook.Save
Und cc: ist ein If-Then oder du machst 2 verschiedene Schaltflächen.
cu
Chris
Anzeige
AW: Dynamischer Dateianhang // Abstimmungsschaltfläche
13.07.2018 18:17:42
Yanek
Hi Chris,
danke für deine Hilfe.
Leider hilft mir das nicht wirklich, weil es meine Kenntnisse übersteigt.
Hättest du denn einen Vorschlag für die If-Then Funktion bzgl. CC?
Vielen Dank im Voraus
Yanek
AW: Dynamischer Dateianhang // Abstimmungsschaltfläche
14.07.2018 07:37:37
ChrisL
Hi
Ich nehme an du hast zwei Schaltflächen. Und bei einer zusätzlich
.cc = Sheets("XXX_v1").Range("A?").Text
?=Platzhalter
Nicht vergessen, Frage im Forum als offen kennzeichnen.
cu
Chris
AW: Dynamischer Dateianhang // Abstimmungsschaltfläche
15.07.2018 00:12:40
fcs
Hallo Yanek,
das dynamische Umbenennen des Attachments (Anhang) ist bei der Steuerung des Ablaufs das kleinste Problem.
Mit den Optionsschaltfächen in der Outlook-Mail kann man hier nichts anfangen, denn dazu müsste man in Outlook selber Makros vorhalten, die den weiteren Ablauf bei genehmigt/abgelehnt steuern.
Ich hab jetzt mal den Versuch unternommen den weiteren Versand über die Excel-Datei zu steuern - wahr ziemlich kompliziert umzusetzen bis alles fehlerfrei lief.
Dabei wird zur Steuerung des Ablaufs
  • die Beschriftung der Schaltfläche geändert

  • in 2 Namen der Status (gesendet, genehmigt, abgelehnt) und die E-Mail-Adresse des Antragstellers verwaltet

  • vor dem Versand von genehmigt/abgelehnt geprüft, ob die E-Mail-Adresse des Antragstellers gleich der E-Mail-Adresse des Outlook-Konton des angemeldeten Users ist (versehentliches Genehmigen vermeiden!)

  • über eine Function mit Parametern die E-Mail erstellt
    Parameter geben dabei vor:
    - To, CC, BCC, Betreff, Mail-Text, Attachment-Name
    - ob die Datei mit dem erstellten Attachment wieder gelöscht wird
    - ob die E-Mail in Outllok angezeigt oder direkt gesendet werden soll
    - ob der Antrag oder die Genehmigung/Ablehnung bearbeitet werden soll.
    - dass ein Meldetext bei Fehlern zurückgegeben werden soll
    So können mit einer Fuction unterschiedliche E-Mails versendet werden.

  • der Anhang mit Status genehmigt/abgelehnt ohne Schaltfläche und Makros versendet.

  • Ich hoffe du findest dich im Makro zurecht, um Anpassungen zu machen. Die zahlreichen Kommentare sollten weiterhelfen.
    Gruß
    Franz
    Beispiel-Datei:
    https://www.herber.de/bbs/user/122680.xlsm
    Anzeige
    AW: Dynamischer Dateianhang // Abstimmungsschaltfläche
    17.07.2018 13:47:56
    Yanek
    Hallo Franz,
    vielen lieben Dank für die tolle Vorlage. Ich habe die Codes soweit angepasst und es sieht schon super aus! Es gibt noch ein paar Unstimmigkeiten, bei denen ich Hilfe gebrauchen könnte..
    1. Wenn ich als "Genehmiger" den Antrag ablehne, dann wird die Mail nicht einfach an den Antragssteller ("MailSender") zurückgeschickt, sondern es erscheint ein Pop-Up Fenster mit der erneuten Frage "Antrag genehmigen", inkl. des einzelnen Auswahlbuttons "OK". Wenn ich dann auf OK klicke, schließt sich die Excel und es wird nichts versendet. Ziel ist es, dass der Antrag bei Ablehnung nur an den Antragsteller zurückgesendet mit dem entsprechenden Textfeld.
    2. Wenn der "Genehmiger" den Antrag bestätigt und versendet, sollte ein Pop-Up-Fenster mit der Nachricht "Wurde an ... "MailSender" und "MailZiel" versendet" angezeigt werden. Der MailSender wird aber jedes mal als "/o=ExchangeLabs/ou=Exchange Administrative Group ..." dargestellt. Gibt es hier eine Möglichkeit, das zu ändern?
    3. Wird der Antrag "Genehmigt" oder "Abgelehnt", würde ich gerne das jeweilige Wort in der E-Mail vom Genehmiger dick markieren. Im Internet finde ich aber leider nur Informationen, wie man eine ganze Zeile markiert. Hast du eine Idee?
    Liebe Grüße
    Janek
    Anzeige
    AW: Dynamischer Dateianhang // Abstimmungsschaltfläche
    17.07.2018 14:34:07
    Yanek
    - Noch offen -
    AW: Dynamischer Dateianhang // Abstimmungsschaltfläche
    18.07.2018 08:33:04
    fcs
    Hallo Janek,
    Problem 1.
    konnte ich lösen, da hatte sich ganz zum Schluss noch ein Fehler eingeschlichen bei der Prüfung ob Antragsteller un Genehmigender mit dem gleichen E-Mail-Account arbeiten.
    Problem 2.
    Ich hab was eingebaut, weiß aber nicht ob es funktioniert. Die Werte für Mail-Adressen werden jetzt als ByVal und nicht mehr byRef in die Function für den Mail-Versand übernommen.
    Problem 3.
    Nüsste funktionieren, wenn man den Body als HTML aufbaut, aber das hab ich nicht hingekriegt.
    Neue Makros als Text-Datei:
    https://www.herber.de/bbs/user/122745.txt
    neue bzw. geänderte Zeilen sind mit '### neu bzw. '### geändert markiert.
    Gruß
    Franz
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige