Anzeige
Archiv - Navigation
1580to1584
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
Mail in HTML formatieren
15.09.2017 15:42:43
Nordwestler
Hallo allerseits,
leider hat meine letzte Anfrage dazu nicht zum Erfolg geführt und ist inzwischen geschlossen. Deshalb ein neuer Versuch, weil ich noch nicht die Hoffnung aufgegeben habe, dass es geht - auch wenn ich es nicht hinkriege :-(
Dieser Teil:
.Body = Cells(10, 4) & Cells(8, 4) & Cells(9, 4) & strSignatur
soll in Arial 10 formatiert werden.
.Body zerschießt mir aber die formatierte Signatur
Wenn ich aus Body HTMLBody mache, wird die Signatur richtig formatiert dargestellt, der Text aber in Times NR 12.
Mit .HTMLBody = ' " ..." ' (ohne äußere Hochkomma, aber sonst erscheint der Text hier nicht) klappt es, dass "Cells(10,4)" als Text in Arial 10 erscheint, aber nicht der Inhalt der Zelle.
Ich hab mir schon 'nen Wolf gesucht, aber nichts gefunden, was ich passend umsetzen konnte. Vielleicht bin ich auch zu unbedarft dafür, vertraue aber auf die Kompetenz des Forums :-)
Wer kann mir bitte die nötige Erleuchtung geben, damit das letzte Problem dieser Aufgabe auch noch gelöst werden kann.
Sub Mail_in_Outlook_erzeugen_und_mit_Anhang_versenden()
Dim boSchalter As Boolean
Dim Nachricht As Object, OutApp As Object
Dim strAttachmentPfad1 As String
Dim strAttachmentPfad2 As String
Dim strAttachmentPfad3 As String
Dim strDateiname As String
Dim strSignatur As String
Set OutApp = CreateObject("Outlook.Application")
' zieht die Anlage aus der definerten Zelle aus definiertem Pfad
strDateiname = Range("g4").Value
strAttachmentPfad1 = Environ("USERPROFILE") & "\Desktop\Excel\Ergebnisse\" & strDateiname
' prüft, ob Anlagen in angegebenen Zellen vorhanden sind
If Range("D15")  "" Then
strDateiname = Range("D15").Value
strAttachmentPfad2 = Environ("USERPROFILE") & "\Desktop\Excel\Anlagen\" & strDateiname
boSchalter = True
End If
If Range("D16")  "" Then
strDateiname = Range("D16").Value
strAttachmentPfad3 = Environ("USERPROFILE") & "\Desktop\Excel\Anlagen\" & strDateiname
boSchalter = True
End If
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
' Outlook Signatur aktivieren
.GetInspector.Display
strSignatur = .Body
' Empfängeradressen holen aus Zeile 2, Spalte 5 (=E) usw.
.To = Cells(11, 4) & ";" & Cells(12, 4)
.Cc = Cells(13, 4) & ";" & Cells(14, 4)
' Betreff holen
.Subject = Cells(7, 4)
' Textblock: Anrede aus Zeile 2; Spalte 10 (=J), Textbaustein 1 & 2; Signatur
.Body = Cells(10, 4) & Cells(8, 4) & Cells(9, 4) & strSignatur
' Anlage 1 anhängen
.Attachments.Add strAttachmentPfad1
' Wenn oben geprüfte Zellen nicht leer sind, wird die Anlage gezogen, sonst nicht
If boSchalter Then
If Not strAttachmentPfad2 = "" Then
.Attachments.Add strAttachmentPfad2
End If
If Not strAttachmentPfad3 = "" Then
.Attachments.Add strAttachmentPfad3
End If
End If
'Mail anzeigen vor Versand
.Display
End With
'Outlook schliessen
'OutApp.Quit
Set OutApp = Nothing
Set Nachricht = Nothing
End Sub

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mail in HTML formatieren
15.09.2017 15:51:19
mumpel
Hallo!
Entweder im .htmlBody mit dem Span-Tag nutzen (nicht "Font Face"), Informationen zum Span-Tag im Internet zu finden. Oder die Email über den WordEditor formatieren, siehe hierzu mein Beispiel unter Outlook-Workshop - Email aus Word/Excel erstellen Teil 2
Gruß, René
AW: Mail in HTML formatieren
15.09.2017 16:14:22
Nordwestler
Danke René,
Informationen habe ich schon viele gefunden im Internet, leider nicht die Passenden :-(
Mit 'span style...' komme ich auch nicht weiter und für dein Beispiel muss ich wohl erst noch einen Studiengang einlegen :-)
Ich hatte auf eine einfachere Lösung gehofft.
Trotzdem erst einmal danke für die Hinweise!
Gruß
Reinhard
Anzeige
AW: Mail in HTML formatieren
15.09.2017 17:09:35
mumpel
So schwer ist das nicht. Dauert zwar ein paar Stündchen bis Du es verstanden haben wirst, aber lange dauert es nicht. Und eine leichte Lösung gibt es nicht. Ohne Dich in HTML oder den WordEditor einzuarbeiten wirst Du nicht weiterkommen.
AW: Mail in HTML formatieren
15.09.2017 20:15:55
Nordwestler
Übung macht den Meister - oder probieren geht über studieren :-)
Ich habe also mal probiert, deine Beispieldatei auf meine Bedürfnisse (erst mal ohne Anhänge) umzubauen. Tatsächlich klappt es soweit gut, dass Betreff, Mailadresse und Textbausteine aus den Zellen gezogen werden.
Nur leider klappt das, was mit den Texten im Code funktioniert, nicht mehr, wenn ich die Texte mit Zellbezügen ersetze.
Also statt
olNewBody = "Hallo!" & " br > "
olNewBody = Cells(10, 4) & " br > "
Dann kommt das dabei raus:
Userbild
Warum?
Anzeige
AW: Mail in HTML formatieren
15.09.2017 16:15:18
EtoPHG
Hallo,
Einfaches Code-Beispiel, das den Inhalt der Zellen A1-A10 in den HTMLBody abfüllt:
Sub CreateHTMLMail()
Dim outApp As Object
Dim objMail As Outlook.MailItem
Dim xRow As Long
Set outApp = CreateObject("Outlook.Application")
'Create e-mail item
Set objMail = outApp.CreateItem(olMailItem)
With objMail
'Set body format to HTML
.BodyFormat = olFormatHTML
'Fill the HTMLBody
.HTMLBody = ""
' Text of Cells A1 to A10 into HTMLBODY
For xRow = 1 To 10
.HTMLBody = .HTMLBody & Cells(xRow, 1).Text
.HTMLBody = .HTMLBody & "
Next xRow 'End Mark an Display .HTMLBody = .HTMLBody & "" .Display End With End Sub
Gruess Hansueli
Anzeige
AW: Mail in HTML formatieren
15.09.2017 16:27:26
Nordwestler
Hallo Hansueli,
danke für das Code-Beispiel, aber für eine Dummi wie mich stellt sich jetzt die Frage, wie sich das in den Code reinkriegen soll und wo das die Formatierung auf Arial 10 steckt?
Ich fürchte, ihr setzt zuviel Know-How voraus :-(
Gruß
Reinhard
Lade deine Mappe hoch und...
15.09.2017 22:00:46
EtoPHG
ich bau dir das ein.
Gruess Hansueli
AW: Lade deine Mappe hoch und...
15.09.2017 22:07:21
Nordwestler
Das finde ich ja prima, aber was meinst du mit Mappe hochladen? Den Code habe ich doch zu Beginn eingefügt?
AW: Lade deine Mappe hoch und...
15.09.2017 23:32:35
mumpel
Die Datei hier hochladen ist besser, sonst müssen wir die Datei nachbauen.
AW: Lade deine Mappe hoch und...
16.09.2017 15:48:19
Nordwestler
Ah so! Hier ist sie, allerdings ohne Bezugsdateien. Ich hoffe, das Wesentliche funktioniert trotzdem!?
https://www.herber.de/bbs/user/116295.xlsm
Vielen Dank schon mal für eure Hilfsbereitschaft!
Reinhard
Anzeige
AW: Lade deine Mappe hoch und...
18.09.2017 13:11:00
EtoPHG
Hallo,
Sorry aber bei deinem Code blick ich nicht durch.
Hier die Beispielmappe mit HTML-formatiertem Mail.
Gruess Hansueli
AW: Lade deine Mappe hoch und...
18.09.2017 15:12:50
Nordwestler
Hallo Hansueli,
das kann ich jetzt nicht glauben, dass du als Profi-Excelianer mit meinem simplen Stümpercode nicht klar kommst ;-) Wie soll ich das denn dann schaffen :-)
Nun gut, ich werd's versuchen und danke schon mal für deine Beispielmappe!
Mit greulichen Füßen (herrlich :-))
Reinhard
Der Verzweiflung nah!
18.09.2017 18:57:43
Nordwestler
Hallo Hansueli,
ich habe versucht, deinen Code einzubauen, aber der Code hängt immer bei '.BodyFormat = olFormatHTML' als Laufzeitfehler 5: Unzulässige Prozedur ...
Ich habe zum vielleicht beseren Verständnis meiner "Konstruktion" die komplette Mappe nebst Anlagen "neutralisiert" und gezippt. Wenn der Ober-Ordner auf dem Desktop liegt, die Steuerungsdatei unter Excetest - Master aufrufen.
Mit Doppelklick auf BLZ (ab B18)werden die Daten aus Unter-Ordner Quelldaten importiert sowie weitere Daten erzeugt.
Mit "Zieldatei erzeugen" werden diese Daten in eine Mustervorlage kopiert und unter neuem Namen im Unter-Ordner Ergebnisse gespeichert.
Mit "Mail versenden" wird diese Datei (und ggfs. weitere Anlagen) an eine Mail angehängt und diese mit Adressdaten etc. gefüttert.
Vielleicht wird mit der kompletten Mappe durchsichtiger, wie das Ding aufgebaut ist und normalerweise auch funktioniert bis auf HTML. Deinen Code habe ich ins Modul Mailversand eingebaut, aber sobald '.BodyFormat = olFormatHTML' ff. aktiviert werden, ist Feierabend :-( Keine Anrede, kein Text, alls andere okay.
Ich hoffe, du hast doch noch eine Lösung für mich?
https://www.herber.de/bbs/user/116341.zip
Anzeige
AW: Der Verzweiflung nah!
18.09.2017 20:51:36
mumpel
Hast Du einen Verweis auf die "Microsoft Outlook 15.0 Object Library" gesetzt? Da hier anscheinend Early-Binding zum Einsatz kommt, kommt es bei fehlendem Verweis zu einer Fehlermeldung. Statt "olFormatHTML" schreibe 2, also .BodyFormat = 2
(Bedeutung der Zahlen: 2 = HTML-Mail, 1 = Nur-Text-Mail, 3 = Rich-Text-Mail)
AW: Der Verzweiflung nah!
18.09.2017 22:36:29
Nordwestler
Yesssssssssssssssssss!
Verweis geht zwar auf Outlook 16.0, aber das ist wohl nur eine Versionsnummer.
Mit der 2 hat's geklappt, allerbest :-)
Dicken Dank und gute Nacht!
Reinhard
AW: Der Verzweiflung nah!
19.09.2017 08:30:22
mumpel
Dann hast Du Outlook 2016, nicht 2013 wie hier angegeben. Office 2013 hat die Versionsnummer 15, Office 2016 die 16.
Anzeige
AW: Der Verzweiflung nah!
19.09.2017 10:11:56
Nordwestler
Moin, das stimmt, aber 2016 lässt sich nicht auswählen, weil unter Excel-Version nur 2013 & Office 365 angeboten wird! Wäre vielleicht ein Thema für die Admins der Seite?
Userbild

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige