Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
412to416
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
412to416
412to416
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Erweiterung eines bestehenden Codes

VBA Erweiterung eines bestehenden Codes
Glen
Hallo liebe Leute
Ich habe ein geniales Makro von hier, dass ich auch seit einiger Zeit nutze.
Nun habe ich die Möglichkeit dieses bei einer anderen Arbeitsmappe einzusetzen, benötige hierzu jedoch noch eine weitere Funktion.
Das unten stehende Makro sendet nach dem sichern der Arbeitsmappe eine E-Mail.
Kann man den Code um die Funktion erweitern, dass wenn der Empfänger -der im Makro genannt ist- Einträge in die Arbeitsmappe gemacht hat und das ganze sichert,
dieses Mail nach dem sichern nicht nochmal erhält?

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ol, mail As Object
Set ol = CreateObject("Outlook.Application")
Set mail = ol.CreateItem(0)
mail.Subject = "Retour Lieferant " & Now
mail.To = "efrem.keller@spengler.ch"
'mail.cc = ""
'mail.bcc = ""
mail.body = "Diese Mail wurde nach dem sichern direkt aus Excel versandt. In der Liste O: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 Sub

vielen Dank im voraus für eure Hilfe
liebe Grüsse
Glen
AW: VBA Erweiterung eines bestehenden Codes
Nike
Hi,
im Forum moeglichst echte E-Mail Adressen
vermeiden, sonst bekommst du nur Spam...
Hier mal ein Versuch, einfach mal den Benutzernamen ausprobieren

Sub test()
MsgBox Environ("Username")
End Sub

und das Script entsprechend anpassen:

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ol, mail As Object
If Environ("Username") <> "Benutzername" Then
Set ol = CreateObject("Outlook.Application")
Set mail = ol.CreateItem(0)
mail.Subject = "Retour Lieferant " & Now
mail.To = "john.doe@company.ch"
'mail.cc = ""
'mail.bcc = ""
mail.body = "Diese Mail wurde nach dem sichern direkt aus Excel versandt. In der Liste O: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

Bye
Nike
Anzeige
AW: VBA Erweiterung eines bestehenden Codes
Glen
Hallo Nike
Habe das mal so eingebaut. Wusste allerdings nicht was alles anzupassen war, denn das Mail wird immer noch verschikt.

Sub test()
MsgBox Environ("Username")
End Sub

'und das Script entsprechend anpassen:

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ol, mail As Object
If Environ("Username") <> "john.doe@company.ch" Then
Set ol = CreateObject("Outlook.Application")
Set mail = ol.CreateItem(0)
mail.Subject = "Retour Lieferant " & Now
mail.To = "john.doe@company.ch"
'mail.cc = ""
'mail.bcc = ""
mail.body = "Diese Mail wurde nach dem sichern direkt aus Excel versandt. In der Liste O: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

Gruss
Glen
Anzeige
AW: VBA Erweiterung eines bestehenden Codes
xXx
Hallo,
die Zeile muss etwa so aussehen:
If Environ("Username") "john doe" Then
Anstatt "John Doe" muss hier der Anmeldename des Users stehen, so wie er sich am Netzwerk anmeldet.
Gruß aus'm Pott
Udo
AW: VBA Erweiterung eines bestehenden Codes
Nike
Hi,
das 'test' skript soll dir nur dazu dienen, den Usernamen herauszubekommen.
Hast du den, traegst du ihn anstelle von ..."Benutzername" ... ein,
dann sollte das Skript funken...
Bye
Nike
AW: VBA Erweiterung eines bestehenden Codes
xXx
Hallo,
evtl. so:

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim ol, mail As Object
If Not Application.UserName="Efrem Keller" Then
Set ol = CreateObject("Outlook.Application")
Set mail = ol.CreateItem(0)
mail.Subject = "Retour Lieferant " & Now
mail.To = "efrem.keller@spengler.ch"
'mail.cc = ""
'mail.bcc = ""
mail.body = "Diese Mail wurde nach dem sichern direkt aus Excel versandt. In der Liste O: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

Voraussetzung ist, dass unter Extras-Optionen-Allgemein der Benutzername Efrem Keller eingetragen ist.
Gruß aus'm Pott
Udo
http://www.excelerator.de
Anzeige
AW: VBA Erweiterung eines bestehenden Codes
Nike
Hi Udo,
deine Variante geht natuerlich auch,
nur ist meist bei groesseren Companies der User ueberall gleich,
da nuetzt es dann nicht viel den auslesen zu wollen ;-)
Bye
Nike
Es Klappt! VBA Erweiterung eines bestehenden Codes
14.04.2004 13:45:01
Glen
Hallo Nike und Udo
vielen herzlichen Dank euch beiden. Es funktioniert.
Gruss
Glen
AW: VBA Erweiterung eines bestehenden Codes
xXx
Hallo Nike,
da hast du natürlich Recht und Environ ist da eindeutiger.
Benutzername in Excel ist allerdings oft gleich und darum problematisch.
Erhalte oft genug die Meldung: Datei wird benutzt von xyz GmbH ...
Da frage ich mich dann: Wer sitzt denn jetzt schon wieder darauf?
Gruß aus'm Pott
Udo
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige