Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
416to420
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
416to420
416to420
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code kombinieren

Code kombinieren
Glen
Hallo Excelenten
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

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

Betreff
Benutzer
Anzeige
AW: Code kombinieren
Glen
Hallo nochmal
Ich habe noch keine Antwort erhalten (wurde hier wahrscheinlich zu sehr verwöhnt *grins*) und habe gedacht, dass es ev. an der Fragestellung liegt. Ich frage desshalb nochmals und etwas einfacher.
Ich möchte erreichen, dass die Datei erst nach dem sichern versendet wird. Das aber nur, wenn in Spalte A etwas eingetragen wurde.
Jetzt ist es so, dass der Code 1 (mailen) der in einem Modul steht, zusamman mit dem Code 2(der in Tabelle1 steht [Worksheet/Change]) dazu führt, dass jedes mal ein Mail rausgeht, wenn in Spalte A was gemacht wird und die Zelle anschliessend verlassen wird.
Code 1:
Sub mailen()
Dim ol, Mail As Object
'If Environ("Username") "HARRYLOOSER" Then
Set ol = CreateObject("Outlook.Application")
Set Mail = ol.CreateItem(0)
Mail.Subject = "Excel Datei (Kontrolle) bearbeiten " & Now
Mail.To = "harry.looser@LOSY.ch"
'mail.cc = ""
'mail.bcc = ""
Mail.body = "Diese Mail wurde nach dem sichern direkt aus Excel versandt. In der Liste" & " E:Lieferant\diverses\Elo.xls" & "wurde ein Eintrag vorgenommen, bitte bearbeiten." & Chr(13) & _
"" & Chr(13) & _
"" & Chr(13) & Chr(13)
Mail.Display
Mail.send
'End If
End Sub
Code 2:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then mailen
End Sub

Hoffe das mir hier jemad helfen kann.
Grüsse
Glen
Anzeige
tausend Dank ! :-)
Glen
Hallo Nepumuk
Ich bin fasziniert. Dir tausend mal dankeschön für deine Hilfe *freu*
Gruss
Glen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige