Code kombinieren
Glen
In meiner Exeltabelle werden von Benutzern Zeilenweise Einträge gemacht. Nun habe ich das so eingerichtet, dass wenn in Spalte A ein Eintrag hinzukommt eine E-Mail an mich ab geht. Um diese Funktion zu starten, verwende ich in der Tabelle den Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then mailen
End Sub
der diesen Code aktiviert:
Sub mailen()
Dim ol, Mail As Object
If Environ("Username") "HarryLooser" Then
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = "Retour Lieferant " & Now
Mail.To = "harry.looser@gomail.ch"
'mail.cc = ""
'mail.bcc = ""
Mail.body = "Diese Mail wurde nach dem sichern direkt aus Excel versandt. In der Liste" & " \\fsze\groups$\vs\VSB Versand Betrieb\Diverses\RetourLieferant.xls" & "wurde ein Eintrag vorgenommen, bitte bearbeiten." & Chr(13) & _
"" & Chr(13) & _
"" & Chr(13) & Chr(13)
Mail.Display
Mail.send
End If
End Sub
Das unpraktische daran ist jetzt nur, dass wenn der Benutzer die Zelle nach dem Eintragen verlässt, bekomme ich bereits die Mail. Merkt er jetzt, dass der Eintrag falsch war und diesen korrigiert, bekomme ich wieder ein Mail. Kann mir bitte hier jemand dabei helfen, dass das Mail erst nach dem Speichern (und nur wenn in Spalte A ein Eintrag gemacht wird) die Mail rausgeht. Ich habe aus der Recherche folgenden Code, der in "DieseArbeitsmappe" abgelegt ist gefunden, weiss aber nicht wie ich alles zusammen zum laufen bekomme und ob dieser Code überhaupt für meine Funktion der richtige ist.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If ["A:A"] = 1 Then Cancel = True
End Sub
Ich habe nur VBA-Kenntnisse mit dem Macrorekorder, also ich kenne die Sparche so gut wie gar nicht.
besten Dank im voraus den Helfern.
Grüsse
Glen