online 1
gast (50)

/ Forum / E-Mail/Outlook

E-Mail/OutlookE-Mail/Outlook

Fragevon faro vom 26.09.2021, 10:23 Options

E-Mail-Benachrichtigung bei Änderung einer Datei

Hallo,
wie ist es möglich, automatisch eine E-Mail zu verschicken, wenn eine Excel-Datei geändert und gespeichert wurde?


Antwort schreiben

Antwort 1 von coros vom 28.09.2021, 07:52 Options

Hallo faro,

im Prinzip ist das möglich, Was man nun nur wissen müsste, ob dass alles im Hintergrund passieren soll, so dass der Benutzer davon nichts mitbekommt.

Wenn das im Hintergrund ablaufen soll, ist das mit Excel eigenen Mitteln etwas schwierig. Man kann zwar ein VBA-Makro schreiben, dass den Befehl erhält eine Mail sofort zu senden, allerdings ist das größere Problem Outlook. Wenn man von Excel oder einem anderen Programm auf Outlook zugreift, erscheint eine Hinweismeldung von Outlook, dass ein fremdes Programm auf Outlook zugreifen will. Außerdem enthält diese Meldung eine Frage, ob man das zulassen möchte oder nicht. Somit ist dann schon mal das Problem, dass hier der Benutzer auch auf "Nein" drücken kann und die Mail nicht versandt wird.
Ein weiteres Problem ist, ist Outlook nicht das Standard-Mailprogramm, will Outlook erst, dass es konfiguriert wird. Also der Mailversand wird wieder sichtbar.

Nun könnte man das auch über Mapi (eine spezielle Bibliothek)machen. Das hat aber wider das Problem, dass auch hier Probleme auftreten können. Das größte Problem ist Microsoft selber. Wenn die ein Kumulatives Sicherheitsupdate starten, dass diese Bibliothek als unsicher einstuft, weil darin eventuell ein Schlupfloch für Hacker vorhanden ist, funktioniert der Mailversand nicht mehr unter der alten Bibliothek, sondern es muss eine neue Bibliothek eingespielt und aktiviert werden.
Ich habe diese Prozedur bereits einmal hinter mir. Ich habe für einen Kunden ein Programm geschrieben, dass 100x Deutschlandweit eingesetzt wird und über das auch offiziell über das Mailstandardprogramm (muss nicht unbedingt Outlook sein) eine Mail versandt werden kann. Nun hat Microsoft diese besagte Bibliothek als unsicher deklariert, ein Killbit für diese Bibliothek gesetzt und eine neue Bibliothek zur Verfügung gestellt. Wenn man nun meint, ok, neue Bibliothek einspielen und aktivieren, der irrt. Das geht nur bei einem teil, bei anderen mussten andere Dinge berücksichtigt werden. Aber gut, dass ist eine andere Geschichte.

Wie Du siehst, ganz so einfach ist es nicht, falls das Vorhaben unsichtbar von statten gehen soll.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von kicia vom 28.09.2021, 09:20 Options

Man braucht ein Programm, das:
a. mitbekommt, daß die Datei gespeichert wird
b. eine Email schickt

a) könnte sein:
- VBA
- ein Programm, das im Hintergrund läuft und von den Dateien weiss
- Server

b) könnte sein:
- Emailprogramm (Outlook,...) gesteuert von Programm a) (zB. VBA)
- das Programm, das im Hintergrund läuft, selbst
- Server

Ich würde sagen: Idealerweise müsste die Verwaltung der Dateien über einen Server laufen.
Die Exceldatei würde vom User "ausgecheckt", bearbeitet, und nach bearbeitung wieder "eingecheckt".
So könnte der Server beim Einchecken eine Email schicken.

Ich gebe allerdings zu, daß sich solcher Aufwand erstmal lohnen muss.

Antwort 3 von DeluxeStyle vom 28.09.2021, 10:17 Options

Microsoft bietet für sowas eine gute aber auch teure Lösung an.

Den Sharepoint Server.
Auf dem können die Dateien verwaltet werden. Allerdings ist es nicht ganz ohne so einen in ein bestehendes System zu integrieren. außerdem ist es nicht billig

Antwort 4 von faro vom 28.09.2021, 18:19 Options

Hallo,

Es kann ruhig (sollte sogar) sichtbar sein.

Der Hintergrund ist, das andere mitbekommen sollen, wenn an der Datei was geändert wurde und es eigentlich von dem "Änderer" die Aufgabe ist, die anderen Beteiligten darüber zu informieren und damit das nicht vergessen wird, sollte das automatisch erfolgen.

Über eine VSS-Lösung habe ich schon nachgedacht, das Problem ist nur, das lokale Kopien gespeichert werden, wenn es ausgecheckt ist und dann manchmal der Überblick verloren wird, welche Datei jetzt aktueller ist.
Ähnliches setzen wir bereits ein, nicht immer ohne Probleme...

Wie würde das Skript aussehen?

Antwort 5 von coros vom 28.09.2021, 18:41 Options

Hallo Varo,

nur mal zum Verständnis: Was verstehst Du unter einer VSS-Lösung?

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von kicia vom 28.09.2021, 20:03 Options

Mit einer Serverlösung wird es vermutlich immer eine lokale Kopie geben. Die Frage ist nur, wieviel man davon mitbekommt.

Geht es um visual source safe ?
hab ich nie benutzt. Ich kenn aber so ein Problem, da wir Dreamwever benutzen. Die einzige Lösung, die mir einfiel, war allen Mitarbeitern einzuschärfen, niemals - nie nie nie - die lokale Version für irgendwas zu verwenden (nur in Dreamweaver wird natürlich daran gearbeitet, aber davon merkt man dann ja nichts). Somit ist die lokale Kopie eine reine Arbeitskopie, sozusagen. Man hat niemals einen Grund, überhaupt in das Verzeichnis hineinzuschauen.

Das funktioniert sehr gut für uns, ich gebe aber zu, daß das in anderer Umgebung weit komplizierter sein könnte.

Antwort 7 von faro vom 29.09.2021, 06:48 Options

Morgen,
ja mit VSS meine ich Visual Source Safe.
Aber diese Variante scheidet aus.

Antwort 8 von coros vom 29.09.2021, 07:42 Options

Hallo faro,

mal so als erster Ansatz nachfolgend mal ein Makro, dass Dir eine Mail in Outlook erstellt und anzeigt, wenn die Datei gespeichert wird. In der Mail wird ein fester Text und ein Link zu der geänderten Datei angezeigt.

Kopiere das Makro in das VBA-Projekt "DieseArbeitsmappe".
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

'Verweis auf Microsoft Outlook x.0 Object Library (Pfad: C:\Programme\Microsoft Office\Office xx\, _
 Bibliothek MSOUTL.OLB) setzen

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim objOutlook As Object
Dim objNachricht As Object
Dim lngRow As Long

lngRow = Selection.Row

Set objOutlook = CreateObject("Outlook.Application")
Set objNachricht = objOutlook.CreateItem(0)
     
With objNachricht
    'Text für Betreffzeile wird eingefügt
    .Subject = "Änderung an Datei """ & ThisWorkbook.Name & """!"
    'Text in Nachrichtentext
    .HTMLBody = "Achtung, es hat eine Änderung in der Datei " _
                & "<a href=""file:///" & ThisWorkbook.FullName & """>Änderung in Datei " _
                & ThisWorkbook.Name & "</a> stattgefunden!"
    'Text in Empfängerzeile
    .To = "Test@web.de"
    'Hier wird die Mail angezeigt
    .Display
    'Hier wird die Mail gleich in den Postausgang gelegt
    '.Send
End With

Set objOutlook = Nothing
Set objNachricht = Nothing

End Sub
Beachte bitte den Hinweis auf den zu aktivierenden Verweis in dem VBA-Code ganz oben.
Ich hoffe, Du kommst klar.

Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort dann in der Anleitungsnummer 1 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.

Bei Fragen melde Dich.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 9 von coros vom 29.09.2021, 07:44 Options

Hi,

ich nochmal. Die Zeilen

Dim lngRow As Long

lngRow = Selection.Row


können in dem VBA-Code gelöscht werden. Ich hatte diesen Code aus einer Antwort von mir gestern nur kopiert und auf Deine Bedürfnisse angepasst. Diese beiden besagten Zeilen werden bei Dir nicht benötigt.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 10 von faro vom 29.09.2021, 11:25 Options

Danke, ich werde es mal ausprobieren.

Antwort 11 von faro vom 04.10.2021, 12:21 Options

funktioniert

Ähnliche Themen

Bei Maileingang Benachrichtigung an andere E-Mail
Marten  30.06.2008 - 75 Hits - 7 Antworten

E-mail benachrichtigung
women  04.01.2009 - 463 Hits - 6 Antworten

E-Mail und akustische Benachrichtigung
rilkemaria  30.07.2009 - 382 Hits - 3 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 16:59:01 2026