Outlook VBA + Excel
#1
Guten Tag,

Leider komm ich zu keiner Lösung mit der Automatisierung meines Vorhabens. Bzw ob das überhaupt möglich ist.

Ich erhalte jeden Tag 2 Emails vom Server jeweils mit einer .xlsm und .pdf Datei als Anhang gesendet.

Dies würde ich gerne mit eine Regel belegen sobald diese Emails ankommen => Verschieb sie in Ordner, als gelesen usw.
Das geht auch ohne Probleme. Natürlich mit einem Script starten.

Nur würde ich jetzt gerne das nur die .xlsm Datei von den Emails in einem bestimmten Pfad gespeichert wird.
Anschließend soll dann eine Excel geöffnet werden und von dort aus das Makro starten. (Manuell funktioniert es sehr gut)

Meine Versuche die Datei zu speichern klappt schonmal, er speichert zwar die pdf und xlsm datei ab. 
Nur der zweite Schritt die Vorlage xlsm datei zu öffnen wo die gespeicherte Datei mit dem Makro weiter bearbeitet krieg ich nicht hin.


Ich hoffe ich konnte es halbwegs verständlich erklären was ich vor habe, in der Hoffnung mir kann hier einer helfen falls es überhaupt umsetzbar ist.

Beste Grüße
Gh0sT_89
Antworten Top
#2
Wink 
Hallo,

was du da vor hast, ist extrem gefährlich und macht alle  Sicherheitsbemühungen zunichte.   27

Viele Admins unterbinden deshalb aus gutem Grund bei Emails Anhänge mit eingebauten Makros. Also vergiss die Idee gleich wieder und denke nicht mal daran, so etwas umsetzen zu wollen.

Knobbi38
Antworten Top
#3
Servus,

ich hab als Email ja kein Makro, sondern eine Tabelle wo für den heutigen Tag gedacht ist, eine Art Arbeitsliste.
Wir haben dann in Excel eine Vorlage wo wir diese Tabelle mit den Grunddaten kopieren und für unsere zwecke weiter verarbeiten.

Mir geht es hier tatsächlich nur wenn die Email rein kommt von einem bestimmten Absender am besten nur die .xlsm Datei in einem bestimmten Pfad abzuspeichern.

Aktuell öffnen wir unsere Vorlage und über ein Button wird das Makro gestartet mit den ganzen gewünschten Bearbeitungen von uns.

Ich bekomm es nur nicht hin dies automatisch zu erstellen, dass sobald die bekannte Email jeden Tag kommt diese Prozedur durchmacht anstatt manuell.

Hoff ich konnte es ein wenig verständlicher machen 😊
Antworten Top
#4
Hallöchen,


1)
also, hast Du Outlook Classic oder das neue? Im neuen gehen keine Makros und um Excel von Outlook aus zu starten bräuchtest Du eins. Das Makro müsste dann bei jedem Eingang prüfen, von wem der kommt, ob da ein Anhang dran ist und wenn ja, eine xlsm, dies dann verschieben, Excel starten usw. Statt dem Verschieben könnte das Makro auch etwas warten, bis Deine Regel die Datei abgelegt hat, und dann Excel starten usw.
Ansonsten, da wäre mal ein Ansatz

2)
Du könntest das auch per Script Excel starten und das Makro ausführen. Das Script startest Du bei Bedarf manuell und der Rest läuft dann automatisch. Das Script könnte man auch im Hintergrund laufen lassen und es z.B. alle x Minuten, Stunden oder was auch immer prüfen lassen, ob was neues im Ablageverzeichnis ist und dann geht's mit Excel los oder auch nicht ...

3) Du kannst auch überlegen, ob Du das erst machst, wenn es die Verarbeitung anliegt ... Auch zeitgesteuert z.B. per Taskmanager Smile
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
Nochmal!

Es ist extrem gefährlich, xlsm Dateien mit potentiellen Makros per Email zu empfangen und dann auch noch automatisiert zu öffnen. So etwas macht man einfach nicht und hat in der Vergangenheit schon zu Wellen der Verbreitung mit Script-Würmern geführt.
Speicher eine empfangen Anlage in einem separatem Verzeichnis, scanne diese evtl. explizit mit einem Virenscanner und dann kannst du bei Bedarf und Gelegenheit nach neuen, unbearbeiteten Dateien mit dem Explorer in dem Verzeichnis suchen bzw. diese dir anschauen. Zur Vereinfachung kannst du ja einen Verknüpfung zu diesem Ordner auf den Desktop legen. 

Von mir aus schreib dir ein Programm, das dich über neue Dateien im Zielverzeichnis benachrichtigt, aber niemals diese automatisch öffnen. Stell dir mal vor, dir schickt einer eine xlsm Datei, die per Makro sich weiter im Netzwerk verbreitet und dann deine Festplatte löscht? Wie willst du das bei so einer Konstellation verhindern? 

Knobbi38
Antworten Top
#6
Servus knobbi,

nochmals,

ich erhalte eine Tabelle ohne MAKROS, die nur Daten enthält, diese verarbeite ich mit einer Vorlagendatei weiter. Sprich ich kopiere die Daten in die Vorlage starte mein Makro und dies wird dann so dargestellt wie ich es gerne möchte, diese wird dann mit Datum als Dateiname in einem besagten Pfad abgespeichert.
Die Vorlagedatei bleibt dabei unberührt.

Nochmal um es besser zu verstehen was mein Vorhaben ist:
1. Zwei Emails kommen jeden Tag von einem bekannten Absender an mich. (Server) (Jeweils mit einem Anhang im Format: .pdf & .xlsm) => OHNE MAKRO. Reine Daten mit Zahlen und Datum (Eine Art Arbeitsliste)
2. Diese Emails sollen in einem bestimmten Ordner abgelegt werden und wenn möglich ein Script /Automation starten
3. Den Anhang von Punkt 1 im Format .xlsm in einem angegeben Ordner abspeichern. 
4. Sobald es abgespeichert ist => Vorlage.xlsm öffnen 
5. Makro von Vorlage starten. 
=> Das Makro funktioniert im "manuellen" Betrieb ohne Probleme und macht was es soll. Von Schriftart ändern Tabelle auswählen, Datum als Name im bestimmten Pfad speichern usw...

Mir geht hier tatsächlich nur darum das mit der Regel wenn Email X ankommt abgelegt wird und wie oben beschrieben vom punkt 1-5 automatisch geht.


Mfg 
Gh0sT_89
Antworten Top
#7
Hallo  Gh0sT_8,

ich habe dich schon verstanden, aber du erkennst offenbar nicht das Sicherheitsrisiko. XSLM-Dateien können grundsätzlich Makros enthalten und solche Dateien werden aus Sicherheitsgründen nicht mehr mit Mails versendet, auch  nicht, wenn man den Absender kennt. Der Absender selber könnte ja unwissentlich bereits mit Malware oder Script-Würmer infiziert sein. Deshalb sind XSLM-Dateien als Transportmedium für Daten völlig ungeeignet. Wenn es um reine Daten geht, nimmt man dafür XML, einfach für den Absender und einfach für den Empfänger, neuerdings vielleicht auch noch Dateien im JSON- oder YAML-Format. Hier noch ein paar anderen Überlegungen dazu:
https://entwickler.de/software-architekt...son-und-co

Des weiteren ist in neueren Versionen von MS Outlook das Ausführen von Scripts aus Sicherheitsgründen ausgeblendet und muss erst durch einen Registry Eingriff freigeschaltet werden. Insgesamt ist es keine gute Idee, einen Outlook-Client (Classic) mit so einem Workflow zu beaufschlagen. 

Was hingegen machbar wäre ist, mit einem PowerShell-Skript im Taskplaner nach solchen spezifischen Anhängen im Outlook zu suchen und diese dann weiter zu verarbeiten, das Ganze u.U. sogar im Hintergrund. Vielleicht ist das ja für dich eine brauchbare Alternative.

Ganz nebenbei: was machst du eigentlich, wenn Outlook "classic" durch das "neue" Outlook bei euch in der Firma ersetzt wird? Da gibt es dann keine Automatisierung mehr.  

Knobbi38

Siehe auch hier:
https://learn.microsoft.com/en-us/archiv...powershell
Antworten Top
#8
Hallöchen,

Also, wenn man Excel4-Makrofunktionen in der Datei hat, kommt man nicht umhin, diese als xlsm oder xlsb zu speichern und zu versenden. Es sei denn, der Absender ersetzt die Formeln / Funktionen durch Werte.
xlsb mag ich auch nicht, da hier nicht erkennbar ist, ob die Datei Makros enthält oder nicht.

Ansonsten ist auch generell der Mailverkehr unsicher. Wenn der Adressat nicht aufpasst, bekommt er keine "FürDich.xlsx" sondern eine "FürDich.xlsx.exe", eine "FürDich.pdf.exe", irgendwelche verkappten Links, oder sonstigen Unrat.

Outlook kann man übrigens auch von außen per VBA steuern.

1 und 2 ist ja erledigt.

Zu 3 gibt's z.B. :
bei 365 gibt es auch power-automate/email-overview
oder man schafft sich ein Tool an
smarttools ol-autosave-pro/
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#9
Btw.: Power Automate steht für Privatkunden nicht mehr kostenlos zur Verfügung!
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste