Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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
Inhaltsverzeichnis

E-Mail Funktion E-mail generieren

E-Mail Funktion E-mail generieren
27.03.2018 10:56:05
blangmantl
Hallo,
ich möchte folgendes erreichen:
in angefügter Tabelle möchte ich eine Mailfunktion integrieren. Ich stelle mir das in etwa so vor:
In der Haupttabelle 1 wird bei Doppelklick auf die Kopfspalte E-Mail Adresse(die Adresse so sortiert, dass alle E-Mail Adressenbesitzer oben stehen. Das funktioniert bereits via Makro. Ich wähle dann in der Spalte M aus wer eine Mail bekommen soll via Dropdown auf Ja. (auch das ist schon eingebaut).
Jetzt möchte ich ein Makro haben, dass dann einen E-Mail in Outlook erstellt mit folgenden Parametern.
Die meisten Parameter sind in der Tabelle 5 Vereinsstatus hinterlegt.
Als Absender, die eigene E-Mail Adresse (Tabelle5 Vereinsstatus in Zelle F2.
Diese soll auch im CC stehen.
Dann soll als Anlage die Anlage eingefügt werden, die vorher in Tabelle5 Vereinsstatus F5 ausgewählt wurde. ist nichts ausgewählt muss zwingend eine Fehlermeldung kommen.
Als E-Mail Betreff soll Tabelle5 (Vereinsstatus) F3 stehen
Als E-mail Text soll Tabelle5 (Vereinsstatus) F4 stehen.
Und alle Mitglieder in der Tabelle 1(Mitgliederliste) die in der Spalte M mit Ja ausgewählt wurden sollen ins BCC eingefügt werden.
Bitte beachten, dass die Tabelle sich noch erweitern kann mit Mitgliedern.
Auch soll Outlook danach aufgehen. Den Versand dann direkt in Outlook möchte ich händisch machen.
Wie geht das?
Danke und Gruß
Benedikt
Hier die Tabelle https://www.herber.de/bbs/user/120695.zip

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail Funktion E-mail generieren
27.03.2018 11:24:15
Peter(silie)
Hallo,
da gibt es unszählige Anleitungen und Code Beispiele im Netz.
Googlen wäre da schneller gewesen als diesen Thread zu eröffnen.
Hier ein Link: https://www.rondebruin.nl/win/s1/outlook/mail.htm
AW: E-Mail Funktion E-mail generieren
27.03.2018 11:29:12
blangmantl
Hallo,
klar da hast du Recht, aber zum Einen ist diese Seite in Englisch und zum anderen habe ich wie angegeben nicht genug VBA Kenntnisse dafür
AW: E-Mail Funktion E-mail generieren
27.03.2018 16:00:36
blangmantl
Hallo,
ich habe via Internet mir folgenden Code zusammengebastelt. Aber bei zwei Sachen komme ich nicht klar, da reichen meine VBA Kenntnisse nicht aus.

Sub EmailManuellAbsenden()
Application.DisplayAlerts = False
Dim objOutlook As Object
Dim objMail As Object
Dim olApp As Object
Dim olOldBody As String
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
Set .SendUsingAccount = .Session.Accounts.Item("info@fidele-rixdorfer.de") '  _
Sendekonto vorwählen.
.GetInspector.Display
olOldBody = .htmlBody
.To = Tabelle5.Cells(2, 6).Value 'Empfängeradresse aus Tabelle5 Zelle F2
.CC = Tabelle5.Cells(2, 6).Value 'CC aus Tabelle5 Zelle F2
.BCC = "" 'BCC Mitglieder eintragen aus
.Attachments.Add Tabelle5.Cells(5, 6).Value 'Anlage aus Tabelle5 Zelle F5
.Subject = Tabelle5.Cells(3, 6).Value 'Betreff aus Tabelle5 Zelle F3
.htmlBody = Tabelle5.Cells(4, 6).Value & olOldBody 'Text aus Tabelle5 Zelle F4
End With
End Sub
1. Es soll vorher abgeprüft werden, ob in der Tabelle 5 eine PDF Anlage ausgewählt wurde. Wenn ja dann soll der Code normal weiterlaufen, dann wird die ausgewählte Datei in die E-Mail eingefügt.
Ansonsten soll eine MSG Box angezeigt werdn mit Titel Fehler und OK Button only ,die MSG Box soll in etwa den Text haben: "Keine Anlage gewählt, Mailversand beendet, bitte vorher Anlage wählen und neu starten" und das Makro beendet.
2. Ich möchte aus der Tabelle 1 alle Mitglieder-Adressen, (diese befinden sich alle in Tabelle1 Spalte L) wo in der gleichen Tabelle Spalte M ein Ja ausgewählt wurde und nur diese ins BCC der Mail haben.
Anmerkung hierzu. Vorher wird die Tabelle 1 so sortiert, dass alle Mail Adressen dann ohne Leerzelle dazwischen untereinander stehen. Aber es müssen dann alle mit Ja im Empfängerkreis eingefügt werden und bitte nur im BCC
3. Der E-mail Text ist in der Tabell mit Zeilenumbruch eingetragen, irgendwie wird das so aber nicht in der E-Mail dargestellt, wie muss man es machen, dass der genau so dargestellt wird wie in der Tabelle eingetragen.
Anbei die Originaltabelle mit meinem Makro Code.
https://www.herber.de/bbs/user/120708.zip
Anzeige
blangmantl: Copyright lächerlich !
27.03.2018 18:43:13
KlausF
Hallo blangmantl,
meinst Du nicht, dass diese Zeilen in Deiner Datei wirklich lächerlich sind
(um nicht zu sagen eine Lüge):
'**************************************************
'* B.Langmantl *
'* 27.03.2018 *
'* erstellt von benedikt@langmantl-berlin.de *
'* © Benedikt Langmantl kopieren verboten *
'**************************************************
Mit Verlaub: Du hast den Code hier zu mindestens 95 % buchstabengetreu
zusammengebastelt bekommen oder von anderen Websites zusammen getragen.
Was soll das also?
Von mir gibt es keine Hilfe mehr.
Gruß
Klaus
Anzeige
vergessen auf offen zu stellen
27.03.2018 18:50:51
KlausF
AW: vergessen auf offen zu stellen
27.03.2018 18:58:07
blangmantl
Nimm ich raus
kann ich mich nur entschuldigen
27.03.2018 19:09:16
blangmantl
Habe da eigentlich nur was anderes genommen und überschrieben. Wollte eigentlich nur die Kommentarfunktion üben da ich VBA gerade lerne. Sicherlich wollte ich weder andere Rechte verletzen noch irgendjemandem zu Nahe treten. Ich verspreche das rauszunehmen was ich ohnehin vorhatte. Kann mich nur entschuldigen.
Danke und Gruß
Benedikt
Hier rausgenommen Copywright aus Code
27.03.2018 21:15:29
blangmantl
So aufgrund der berechtigten Kritik von Klaus hier nocheinmal die Version, wo ich jegliches Übungscopywright wieder rausgenommen habe.
Sorry an die, denen ich damit zu Nahe getreten bin.
https://www.herber.de/bbs/user/120718.zip
Anzeige
AW: E-Mail Funktion E-mail generieren
27.03.2018 22:16:26
Peter(silie)
Hallo,
diese ganze Copyright Geschichte mal beiseite...
Du hast nicht gesagt an wen diese Email eigentlich geht.
Ich habe also dich als Empfänger eingetragen
Probiere mal den Code hier:
(Nicht getestet! keine ahnung ob der geht)

Option Explicit
Private Type EmailDetails
MyAddress       As String ' 3 Then
For i = 4 To lRow
If .Cells(i, 13).Value = "Ja" Then
adrs = adrs & "; " & .Cells(i, 12).Value
End If
Next i
End If
End With
If Left(adrs, 1) = ";" Then adrs = Right(adrs, Len(adrs) - 1)
GetDetails.BlindCarbonCopy = adrs
End Function
Public Sub NewMail()
Dim oApp    As Object
Dim omItem  As Object
Dim ed      As EmailDetails
ed = GetDetails
If ed.MyAddress = vbNullString Then Exit Sub
'Falls der Anhang fehlt
If ed.Attachament = vbNullString Then
MsgBox "Es gibt keinen Anhang, diese Mail ist überflüssig!", _
vbExclamation, "Attachments Missing"
Exit Sub
End If
On Error GoTo FailedToCreateOutlookApp
Set oApp = CreateObject("Outlook.Application")
If oApp Is Nothing Then Exit Sub
Set omItem = oApp.CreateItem(0)
If omItem Is Nothing Then Exit Sub
On Error Resume Next
With omItem
.To = ed.MyAddress 'geht an dich bis dato
.CC = ed.CarbonCopy 'auch an dich
.BCC = ed.BlindCarbonCopy 'an alle mit ja in Mitglieder
.Subject = ed.Subject 'Betreff
.Body = ed.MailBody 'Text der Mail
.Attachments.Add ed.Attachament 'Anhang
.Send 'Absenden
End With
On Error GoTo 0
FailedToCreateOutlookApp:
If Err.Number  0 Then
MsgBox "Outlook Instanz konnte nicht erstellt werden!" & _
vbCrLf & "Fehler ID: " & Err.Number & _
vbCrLf & "Fehler: " & Err.Description _
, vbInformation, "Outlook Fehler"
End If
End Sub

Anzeige
AW: E-Mail Funktion E-mail generieren
27.03.2018 22:22:23
bLangmantl
Und wo genau muss das rein? Ins Modul?
AW: E-Mail Funktion E-mail generieren
27.03.2018 22:30:59
Peter(silie)
Hallo,
ersetze den Code von mdl_EMail dadurch und rufe in einem Button oder so dann "mdl_EMail.NewMail" auf.
Und schau dass du deine verdammten Dateien vom Server hier bekommst...
Wenn die Leute davon Wind bekommen hast du echt ein Problem, vorallem mit dem kommenden
Datenschutzgesetz im Bereich Personenbezogene Daten (BDSG: https://dsgvo-gesetz.de/bdsg-neu/)
Nimm sowas nicht leicht, sowas ist ein ernstes Problem.

AW: E-Mail Funktion E-mail generieren
27.03.2018 22:33:35
bLangmantl
Ok dann werde ich in Zukunft mit einer Kopie und Dummies arbeiten
AW: E-Mail Funktion E-mail generieren
27.03.2018 22:39:40
blangmantl
Hallo,
Habe den Hr. Herber angeschrieben. Danke für den Hinwris
Anzeige
Nachtrag... @Hans W. Herber bitte lesen!
27.03.2018 22:21:42
Peter(silie)
Hallo,
bitte sei so gut und anonymisiere in Zukunft deine Daten...
Die Mitglieder finden es sicherlich nicht lustig dass deren komplette Daten jetzt im Netz stehen!
Sei so gut und versuche den Seiten Betreiber Hans W. Herber zu kontaktieren, dass er die Zip Dateien
rausnimmt.
@Herrn Herber
Bitte die Zip Dateien von blangmantl vom Server nehmen, da sind zuviele Personenbezogene Daten drinnen!
AW: Nachtrag... @Hans W. Herber bitte lesen!
28.03.2018 01:24:25
blangmantl
Hallo,
habe den Code getestet, aber eine Kleinigkeit geändert. ich habe das send in display geändert. Ich möchte schon noch das Ergebnis kontrollieren und händisch senden.
Das ist auch gut so, da ich jetzt folgendes Problem habe.
bei dem Code den ich zuvor hatte, war eine Zeile mit drin, nämlich
Set .SendUsingAccount = .Session.Accounts.Item("info@fidele-rixdorfer.de") ' Sendekonto vorwählen.
Dadurch wurde erreicht, dass sich Outlook so öffnet, dass bereits die Standardmäsige Signatur des Vereins, die bei Outlook voreingestellt st mit bei ist. Dies klappt jetzt leider nicht mehr. ich habe versucht diese Codezeile mit einzubauen, scheint aber nicht zu funktionieren.
Wo muss man das einbauen, oder wie wird es alternativ erreicht, dass Outlook die Sachen in die Mail einbaut, aber die Signatur mit berücksichtigt und auch gleich mit drin hat. E-mail als HTML formatiert.
hier nochmal der Code, falls ein anderer sich das ansieht.
Private Type EmailDetails
MyAddress       As String ' 3 Then
For i = 4 To lRow
If .Cells(i, 13).Value = "Ja" Then
adrs = adrs & "; " & .Cells(i, 12).Value
End If
Next i
End If
End With
If Left(adrs, 1) = ";" Then adrs = Right(adrs, Len(adrs) - 1)
GetDetails.BlindCarbonCopy = adrs
End Function
Public Sub NewMail()
Dim oApp    As Object
Dim omItem  As Object
Dim ed      As EmailDetails
ed = GetDetails
If ed.MyAddress = vbNullString Then Exit Sub
'Falls der Anhang fehlt
If ed.Attachament = vbNullString Then
MsgBox "Es gibt keinen Anhang, diese Mail ist überflüssig!", _
vbExclamation, "Attachments Missing"
Exit Sub
End If
On Error GoTo FailedToCreateOutlookApp
Set oApp = CreateObject("Outlook.Application")
If oApp Is Nothing Then Exit Sub
Set omItem = oApp.CreateItem(0)
If omItem Is Nothing Then Exit Sub
On Error Resume Next
With omItem
.To = ed.MyAddress 'geht an dich bis dato
.CC = ed.CarbonCopy 'auch an dich
.BCC = ed.BlindCarbonCopy 'an alle mit ja in Mitglieder
.Subject = ed.Subject 'Betreff
.Body = ed.MailBody 'Text der Mail
.Attachments.Add ed.Attachament 'Anhang
.display 'Absenden
End With
On Error GoTo 0
FailedToCreateOutlookApp:
If Err.Number  0 Then
MsgBox "Outlook Instanz konnte nicht erstellt werden!" & _
vbCrLf & "Fehler ID: " & Err.Number & _
vbCrLf & "Fehler: " & Err.Description _
, vbInformation, "Outlook Fehler"
End If
End Sub
Hier die Tabelle diesmal mit Dummydaten https://www.herber.de/bbs/user/120720.zip
Anzeige
Habe das mit der Signatur jetzt mal selbst probier
28.03.2018 05:13:03
blangmantl
Hallo, habe über Internet versucht, die Signatur selbst mit Anzufügen. Habe folgenden Ansatz, das ist der Code von Petersilie, den ich versucht habe zu erweitern.
Aber irgendwie setzt er mir die Signatur nicht.
Private Type EmailDetails
MyAddress       As String ' 3 Then
For i = 4 To lRow
If .Cells(i, 13).Value = "Ja" Then
adrs = adrs & "; " & .Cells(i, 12).Value
End If
Next i
End If
End With
If Left(adrs, 1) = ";" Then adrs = Right(adrs, Len(adrs) - 1)
GetDetails.BlindCarbonCopy = adrs
End Function
Public Sub NewMail()
Dim oApp    As Object
Dim omItem  As Object
Dim ed      As EmailDetails
Dim strSignatur   As String
Dim olOldBody As String
ed = GetDetails
If ed.MyAddress = vbNullString Then Exit Sub
'Falls der Anhang fehlt
If ed.Attachament = vbNullString Then
MsgBox "Es gibt keinen Anhang, diese Mail ist überflüssig!", _
vbExclamation, "Attachments Missing"
Exit Sub
End If
On Error GoTo FailedToCreateOutlookApp
Set oApp = CreateObject("Outlook.Application")
If oApp Is Nothing Then Exit Sub
Set omItem = oApp.CreateItem(0)
If omItem Is Nothing Then Exit Sub
On Error Resume Next
With omItem
.To = ed.MyAddress 'geht an dich bis dato
.CC = ed.CarbonCopy 'auch an dich
.BCC = ed.BlindCarbonCopy 'an alle mit ja in Mitglieder
.Subject = ed.Subject 'Betreff
.Body = ed.MailBody 'Text der Mail
.Attachments.Add ed.Attachament 'Anhang
.ReadReceiptRequested = True
.Display 'Mail nur anzeigen, wird händisch über Outlook versendet
'Cursor ans Ende der EMail setzen
VBA.SendKeys "^{END}", True
.olOldBody
'Name der gespeicherten Signatur - bitte anpassen
strSignatur = "fidele-signatur"
'Einfügen einer bestimmten Signatur
.GetInspector.CommandBars.Item("Insert").Controls("Signatur").Controls(strSignatur). _
Execute
End With
On Error GoTo 0
FailedToCreateOutlookApp:
If Err.Number  0 Then
MsgBox "Outlook Instanz konnte nicht erstellt werden!" & _
vbCrLf & "Fehler ID: " & Err.Number & _
vbCrLf & "Fehler: " & Err.Description _
, vbInformation, "Outlook Fehler"
End If
End Sub
P. S. kann offensichtlich den Body nicht als html Body verwenden, sonst zerschießt er mir das Outfit des E-Mail textes, der mit Zeilenumbruch sein soll
Wer kann mir helfen?
Danke und Gruß
Anzeige
Hallo, ...
28.03.2018 08:27:24
Peter(silie)
kurz zum HTMLBody:
Der Text in deiner Zelle muss auch ein HTML Text sein, es müssen also HTML Tags usw verwendet werden, sonst ist es nur plain Text.
Hier Hilfe zu HTML: https://www.w3schools.com/tags/ref_byfunc.asp
Hier mit Session.Accounts:
(Siehe Fett Markiert)
Public Sub NewMail()
Dim oApp    As Object
Dim oAcc    As Object
Dim omItem  As Object
Dim ed      As EmailDetails
ed = GetDetails
If ed.MyAddress = vbNullString Then Exit Sub
'Falls der Anhang fehlt
If ed.Attachament = vbNullString Then
MsgBox "Es gibt keinen Anhang, diese Mail ist überflüssig!", _
vbExclamation, "Attachments Missing"
Exit Sub
End If
On Error GoTo FailedToCreateOutlookApp
Set oApp = CreateObject("Outlook.Application")
If oApp Is Nothing Then Exit Sub
    Set oAcc = oApp.Session.Accounts.Item("info@fidele-rixdorfer.de")
If oAcc Is Nothing Then Exit Sub
Set omItem = oApp.CreateItem(0)
If omItem Is Nothing Then Exit Sub
On Error Resume Next
With omItem
.To = ed.MyAddress 'geht an dich bis dato
.CC = ed.CarbonCopy 'auch an dich
.BCC = ed.BlindCarbonCopy 'an alle mit ja in Mitglieder
.Subject = ed.Subject 'Betreff
.HtmlBody = ed.MailBody 'Text der Mail
.Attachments.Add ed.Attachament 'Anhang
        .SendUsingAccount = oAcc
.Display 'Absenden
End With
On Error GoTo 0
FailedToCreateOutlookApp:
If Err.Number  0 Then
MsgBox "Outlook Instanz konnte nicht erstellt werden!" & _
vbCrLf & "Fehler ID: " & Err.Number & _
vbCrLf & "Fehler: " & Err.Description _
, vbInformation, "Outlook Fehler"
End If
End Sub
Ist wieder nicht getestet!
Anzeige
Danke für die Info. Ich bin raus ...owT
28.03.2018 10:49:02
Peter(silie)

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige