Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
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
mit VBA E-Mail generieren, Code aufteilen
mtremer
Moin,
lange ist es her, dass ich Euch gebraucht habe. Dank Euch, denn Ihr habt schon sehr viel helfen können ;-)
Nun habe ich wieder eine etwas komplizierte Frage, die Excel und Outlook verbindet.
Mit folgendem Code schreibe ich eine E-Mail:
Private Sub CommandButton_Mail_VP_Click()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = „abc@def.de“
.Subject = "Betreffzeile“
strTxt = ""
strTxt = strTxt & "Freitext"
strTxt = strTxt & "Mit freundlichen Grüßen"
strTxt = strTxt & "Vorname Nachname"
strTxt = strTxt & "Adresse"
strTxt = strTxt & "Telefon: "
strTxt = strTxt & "Telefax: "
strTxt = strTxt & "Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte  _
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet." & "
End With End Sub
Weil ich mehrere Buttons habe, die verschiedene E-Mails generieren, möchte ich den Code aufteilen. Das was immer gleich ist, ist die Verabschliedung. Diese möchte ich gern in eine "PrivateFunktion Verabschiedung" auslagern. Nun habe ich schon so lange dran rumgespielt, aber es klappt leider nicht. Könnt Ihr mir hier helfen?
Danke.
Viele Grüße
Marco

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: mit VBA E-Mail generieren, Code aufteilen
28.06.2012 11:22:29
guentherh
Schon mal an eine Global Const gedacht?
Global Const Abschied = "Diese..."
in den Deklarationsteil des Moduls schreiben
dann
strTxt = strTxt & Abschied
Gruß,
Günther
AW: mit VBA E-Mail generieren, Code aufteilen
28.06.2012 11:45:37
mtremer
Hallo Günther,
mit Global Const habe ich bisher noch nicht gearbeitet. Ich trage immer die "ausgelagerten" _ Codes als

Private Function auf der selben Seite wie die "normalen" Codes des entsprechenden  _
Tabellenblattes ein. Da das schon einige sind, würde ich gerne in dieser Logik weiter machen.
Das Problem sind, glaube ich, die Deklarationen. Ich habe das gleiche mit einem Code gemacht,  _
der mir Word-Dateien erstellt. Da habe ich die gleichen Deklarationen in Hauptcode und in der PrivateFunction (nur dort eine Zeile weniger). Für eine E-Mail klappt das leider nicht...
So war mein Lösungsansatz:

Private Sub CommandButton_Mail_VP_Click()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = „abc@def.de“
.Subject = "Betreffzeile“
strTxt = ""
strTxt = strTxt & "Freitext"
End With
Verabschiedung
End Sub

PrivateFunction Verabschiedung()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
strTxt = strTxt & "Mit freundlichen Grüßen"
strTxt = strTxt & "Vorname Nachname"
strTxt = strTxt & "Adresse"
strTxt = strTxt & "Telefon: "
strTxt = strTxt & "Telefax: "
strTxt = strTxt & "Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte _
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet." & ""
End With
End Sub
Aber leider funktioniert es so nicht. Den Text aus der PrivateFunction kommt nicht...
Danke.
Viele Grüße
Marco
Anzeige
AW: mit VBA E-Mail generieren, Code aufteilen
28.06.2012 12:43:36
guentherh
Das Handling der Function ist so natürlich nicht erfolversprechend.
wie kommt Deine strTxt eigentlich ins Outlook?
ohne Punkt vornedran ist es ja nicht Bestandteil der Nachricht.
Ich hab ja nicht nachgezählt, aber ich wundere mich nebenbei, dass soviel text in die strTxt reinpasst, und dass dort keine Zeilenumbrüche reinmüssen.
Hier noch das umgestellte Funktionshandling; auch hier kommt m.E. die strTxt nicht in die Nachricht
Private Sub CommandButton_Mail_VP_Click()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = „abc@def.de“
.Subject = "Betreffzeile“
strTxt = ""
strTxt = strTxt & "Freitext"
End With
strTxt = strTxt & Verabschiedung()
End Sub

Private Function Verabschiedung()
Dim strTxt
With Nachricht
strTxt = strTxt & "Mit freundlichen Grüßen"
strTxt = strTxt & "Vorname Nachname"
strTxt = strTxt & "Adresse"
strTxt = strTxt & "Telefon: "
strTxt = strTxt & "Telefax: "
strTxt = strTxt & "Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte  _
Informationen. Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich erhalten  _
haben, informieren Sie bitte sofort den Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist nicht gestattet." & ""
End With
Verabschiedung= strtxt
End Sub

Anzeige
AW: mit VBA E-Mail generieren, Code aufteilen
28.06.2012 13:22:24
mtremer
Hi Günther,
strtxt habe ich über dieses Forum gelernt. Und ja, Zeilenumbrüche habe ich natürlich auch, allerdings wurden die über den "Codegenerator" des Forums sehr komisch dargestellt, sodass ich sie nur wegen der Darstellung gelöscht habe.
Und Dein Code war ein voller Erfolg!
Danke!
Viele Grüße
Marco
AW: mit VBA E-Mail generieren, Code aufteilen
28.06.2012 13:02:20
Rudi
Hallo,
so in der Art:
Private Sub CommandButton_Mail_VP_Click()
Dim Nachricht As Object, OutApp As Object
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.To = "abc@def.de"
.Subject = "Betreffzeile“"
strTxt = ""
strTxt = strTxt & "Freitext"
strTxt = Verabschiedung(strTxt)
End With
End Sub
Private Function Verabschiedung(ByVal strMail As String)
Dim strTxt As String
strTxt = vbLf & vbLf
strTxt = strTxt & "Mit freundlichen Grüßen" & vbLf
strTxt = strTxt & "Vorname Nachname" & vbLf
strTxt = strTxt & "Adresse" & vbLf
strTxt = strTxt & "Telefon: " & vbLf
strTxt = strTxt & "Telefax: " & vbLf & vbLf
strTxt = strTxt & "Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte  _
Informationen." & vbLf
strTxt = strTxt & "Wenn Sie nicht der richtige Adressat sind oder diese E-Mail irrtümlich  _
erhalten haben," & vbLf & _
"informieren Sie bitte sofort den Absender und vernichten Sie diese Mail." & _
vbLf
strTxt = strTxt & "Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist  _
nicht gestattet."
Verabschiedung = strMail & strTxt
End Function

Gruß
Rudi
Anzeige
AW: mit VBA E-Mail generieren, Code aufteilen
28.06.2012 13:25:09
mtremer
Hi Rudi,
sorry, Günther war schneller, sodass ich seinen Code benutz habe. Deiner sieht aber auch so aus, dass ich zum gleichen Ergebnis gekommen wäre.
Danke Dir auch!
Viele Grüße
Marco

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige