Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: E-Mail nach Änderung

E-Mail nach Änderung
Werner
Hallo Forum,
ich benötige mal wieder Hilfe.
Auf unserem Firmenserver befindet sich unter anderem eine Excel Datei in welcher für mich Daten von unterschiedlichen Personen eingetragen werden. Diese Daten benötige ich zur Erledigung meiner Tätigkeit im Ausland (Produktionssteuern/Qualitätssicherung)
Damit es nicht erforderlich ist mir jedes Mal noch zusätzlich eine E-Mail zu senden um mich zu Informieren das neue Werte vorliegen, suche ich nach einer einfacheren Lösung.
Ich stelle mir vor, dass nach jedem neuen Speichern der Datei automatisch eine E-Mail an meine E-Mailadresse gesandt wird.
Aus der E-Mail soll lediglich hervorgehen, dass die Excel Tabelle aktualisiert wurde. Die Info soll auch keine Hinweise auf den Absender beinhalten. Diese entnehme ich den vorgenommen Änderungen in der Datei.
Kann mir jemand helfen? Ich habe nicht einmal im Ansatz eine Ahnung wie dieses zu bewerkstelligen ist.
Gruß und Danke für die Hilfe
Werner
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: E-Mail nach Änderung
25.09.2011 16:01:49
Josef

Hallo Werner,
das geht z. B. so.

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  Dim objOL As Object
  Dim objMail As Object
  Dim strMsg As String
  
  Set objOL = CreateObject("Outlook.Application")
  Set objMail = objOL.CreateItem(0)
  
  strMsg = "Datei " & Me.Name & " wurde am " & Format(Date, "dd.MM.yyyy") & _
    " um " & Format(Now, "hh:m:ss") & "geändert!"
  
  On Error Resume Next
  
  With objMail
    .To = "deine.Mailadresse@provider.com"
    .CC = ""
    .BCC = ""
    .Subject = "Aktualisierung"
    .Body = strMsg
    .Send
  End With
  
  On Error GoTo 0
  
  Set objMail = Nothing
  Set objOL = Nothing
End Sub



« Gruß Sepp »

Anzeige
AW: E-Mail nach Änderung
26.09.2011 13:32:24
Werner
Hallo Sepp,
Zuerst vielen Dank für Deine Hilfe.
Habe es jodoch noch nicht ausprobiert, da ich erst mal ein anderes Problem mit der Datei lösen muss.
Und ich komme einfach nicht weiter :-(.
In die Datei welche auf unserem Firmenserver liegt, sollen von mehreren Personen Daten eingetragen werden.
Nun wird mir mitgeteilt, dass die Datei gesperrt ist. Bewusst habe ich weder den Zugriff noch das Einfügen von Daten gesperrt.
Was habe ich mangels Fachkenntnisse in VBA falsch gemacht bzw. bei Hilfe aus dem Forum falsch umgesetzt haben?
Jeder der Zugang auf den Bereich des Servers hat in dem die Datei liegt, soll Daten eintragen können.
Könntest bzw. würdest Du bitte mal die Datei anschauen und mir mitteilen wo etws nicht passt?
https://www.herber.de/bbs/user/76761.xls
Das Passwort zum öffnen des Codes in der Tabelle "Fehlerbeschreibung" lautet we2go4it.
Gruß
Werner
Da Du mir schon so viel geholfen hast, würde ich Dich gerne persönlich kennenlernen sobald ich mal wieder in Deutschland bin. Was hältst Du davon?
Anzeige
AW: E-Mail nach Änderung
26.09.2011 20:07:54
Josef

Hallo Werner,
alle Tabellen sind geschützt, den Workbook-Open - Code hast du falsch platziert, er gehört in das Modul "DieseArbeitsmappe".

« Gruß Sepp »

Anzeige
;
Anzeige

Infobox / Tutorial

E-Mail-Benachrichtigung nach Excel-Änderungen


Schritt-für-Schritt-Anleitung

Um eine E-Mail zu versenden, wenn eine Excel-Datei aktualisiert wird, benötigst du VBA (Visual Basic for Applications). Hier sind die Schritte, um dies in Excel einzurichten:

  1. Excel öffnen: Starte die Excel-Datei, in der du die E-Mail-Benachrichtigung einrichten möchtest.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen:

    • Im Projektfenster (links) die Datei auswählen.
    • Mit der rechten Maustaste auf "DieseArbeitsmappe" klicken und "Code anzeigen" auswählen.
  4. Code einfügen: Kopiere den folgenden VBA-Code und füge ihn in das Codefenster ein:

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
       Dim objOL As Object
       Dim objMail As Object
       Dim strMsg As String
    
       Set objOL = CreateObject("Outlook.Application")
       Set objMail = objOL.CreateItem(0)
    
       strMsg = "Datei " & Me.Name & " wurde am " & Format(Date, "dd.MM.yyyy") & _
                " um " & Format(Now, "hh:mm:ss") & " geändert!"
    
       On Error Resume Next
       With objMail
           .To = "deine.Mailadresse@provider.com"
           .CC = ""
           .BCC = ""
           .Subject = "Aktualisierung"
           .Body = strMsg
           .Send
       End With
       On Error GoTo 0
    
       Set objMail = Nothing
       Set objOL = Nothing
    End Sub
  5. Anpassungen: Ersetze "deine.Mailadresse@provider.com" mit deiner tatsächlichen E-Mail-Adresse.

  6. Speichern: Schließe den VBA-Editor und speichere die Excel-Datei als Makro-aktivierte Datei (*.xlsm).

Jetzt wird nach jedem Speichern der Datei eine E-Mail an dich gesendet, die über die Aktualisierung informiert.


Häufige Fehler und Lösungen

  • Fehlermeldung beim Speichern: Wenn du eine Fehlermeldung erhältst, dass die Datei gesperrt ist, könnte dies daran liegen, dass das Workbook-Open-Ereignis nicht korrekt platziert wurde. Stelle sicher, dass der Code im Modul "DieseArbeitsmappe" eingefügt wurde.

  • E-Mail wird nicht gesendet: Überprüfe, ob Outlook korrekt installiert und konfiguriert ist. Der VBA-Code benötigt Outlook, um E-Mails zu versenden.

  • Zugriffsprobleme: Wenn mehrere Benutzer gleichzeitig auf die Datei zugreifen, kann es zu Sperrungen kommen. Stelle sicher, dass die Datei nicht im exklusiven Modus geöffnet ist.


Alternative Methoden

Falls du keine VBA-Programmierung nutzen möchtest, gibt es auch andere Möglichkeiten:

  1. Excel-Benachrichtigungen: Nutze die Excel-Funktion "Änderungen nachverfolgen", um Änderungen zu protokollieren und manuell Benachrichtigungen zu versenden.
  2. Drittanbieter-Tools: Es gibt Tools, die spezielle Funktionen zur Benachrichtigung bei Änderungen in Excel-Dateien bieten. Diese können eine einfachere Lösung darstellen, sind jedoch oft kostenpflichtig.

Praktische Beispiele

  • Beispiel für die Verwendung des Codes: Nehmen wir an, du hast eine Excel-Datei für die Qualitätskontrolle. Jedes Mal, wenn ein Mitarbeiter die Datei speichert, erhältst du eine E-Mail mit der Information, dass die Datei aktualisiert wurde. Dies spart Zeit und sorgt dafür, dass du immer informiert bist.

  • E-Mail-Inhalt anpassen: Du kannst den Text der E-Mail im Code anpassen, um spezifische Informationen hinzuzufügen, z.B. den Namen des Benutzers, der die Änderungen vorgenommen hat.


Tipps für Profis

  • Fehlerbehandlung im Code: Implementiere eine bessere Fehlerbehandlung im VBA-Code, um spezifische Fehler zu identifizieren und im Falle eines Problems eine Rückmeldung zu erhalten.

  • E-Mail-Formatierung: Du kannst HTML benutzen, um die E-Mail ansprechender zu gestalten, indem du den Body des E-Mail-Objekts anpasst.

  • Automatisierung: Überlege, ob du die E-Mail-Benachrichtigung nur bei bestimmten Änderungen oder in bestimmten Zeitintervallen senden möchtest, um Spam zu vermeiden.


FAQ: Häufige Fragen

1. Frage Kann ich den VBA-Code auch in Excel Online verwenden?
Antwort: Nein, VBA funktioniert nur in Desktop-Versionen von Excel. Excel Online unterstützt keine Makros.

2. Frage Wie kann ich die E-Mail-Benachrichtigung deaktivieren?
Antwort: Du kannst den Code einfach löschen oder kommentieren, indem du ein ' vor die Zeile setzt.

3. Frage Funktioniert das auch mit anderen E-Mail-Clients?
Antwort: Der aktuelle Code ist für Outlook optimiert. Für andere E-Mail-Clients müsste der Code entsprechend angepasst werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige