Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
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

HTML Tabelle in Outlook erzeugen

HTML Tabelle in Outlook erzeugen
18.07.2017 15:29:21
Katie
Hallo zusammen
Ich habe folgendes Problem:
Ich habe ein Excel Sheet mit einer Tabelle; die Tabelle hat mindestens 2 (ausgefüllte) Spalten und kann bis zu 7 Spalten haben.
Nun möchte ich diese Tabelle variabel in eine Outlook E-Mail bringen, d.h. wenn ich 2 Spalten habe möchte ich nur eine Tabelle mit 2 Spalten in der Mail haben, wenn ich 3 Spalten habe dann alle 3.
Die erste Spalte enthält fixe Daten (z.B. Beschreibungen wie "Datum"), Spalte 2-n enthalten dann die tatsächlichen Daten (z.B. 01.01.2017).
Ich habe bisher folgendes versucht (Auszug als Beispiel):
For Spalte = 2 To n
If ThisWorksheet.Cells(15, Spalte) "" Then
Dt = ThisWorksheet.Cells(33, Spalte).Value
Tabelle & Spalte = "
" & _
(...hier folgen weitere Tabellenzeilen)
End If
Next Spalte
Nachher wollte ich in einem HTMLBody Tabelle2 - Tabelle"n" in eine E-Mail bringen.
Die Variable Bennenung "Tabelle & Spalte" funktioniert jedoch nicht.
Hat jemand eine idee, wie ich das Problem lösen könnte?
Ich wäre auch mit einer Lösung zufrieden, die jeweiles einzelne 2-spaltige Tabellen untereinander erzeugt, anstatt einer breiten Tabelle.
AW: HTML Tabelle in Outlook erzeugen
Katie

Hm, da wurde wohl aufgrund des HTML Syntax etwas verhauen...
Hinter "Tabelle & Spalte" = folgt der Code für eine HTML Tabelle; wie das genau aussieht sollte aber für meine Frage nicht relevant sein.
AW: HTML Tabelle in Outlook erzeugen
Tino

Hallo,
kannst mal diesen Code testen.
Tabelle wo die Daten sind musst du natürlich anpassen!
Sub Makro1()
Dim sHTML$
Dim lngRow&, lngCol&
Dim MyOutApp As Object, MyMessage As Object

With Tabelle1 'Tabelle anpassen
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile
lngCol = .Cells(1, .Columns.Count).End(xlToLeft).Column 'letzte Spalte
sHTML = RangeToHTML(.Range("A1", .Cells(lngRow, lngCol))) 'Range in HTML
End With

Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = "Hier kommt die Adresse rein"
.Subject = "hier der Betreff"
.htmlbody = sHTML
' .Attachments.Add 'für Anlagen
.Importance = 2 'Wichtigkeit hoch
.Display
'.Send 'Hier wird die Mail gesendet
End With

Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Function RangeToHTML(rng As Range) As String
Dim sPath$
Dim F%

sPath = ThisWorkbook.Path
sPath = sPath & IIf(Right$(sPath, 1) <> "\", "\", "")
sPath = sPath & "TmpHtml.html"

With ThisWorkbook.PublishObjects.Add(xlSourceRange, sPath, _
rng.Parent.Name, rng.Address, xlHtmlStatic, "", "")
.Publish (True)
.AutoRepublish = False
End With

F = FreeFile
Open sPath For Binary As #F
RangeToHTML = Space$(LOF(F))
Get #F, , RangeToHTML
Close
Kill sPath
End Function
Gruß Tino
AW: HTML Tabelle in Outlook erzeugen
Katie

Hallo Tino
Prinzipiell funktioniert der Code, aber ich verwende die Tabelle eigentlich etwas anders.
Dein Code "kopiert" ja die Zellen aus Excel, ich habe vorher die Tabelle mit Daten aus verschiedenen Zelllen befüllt, da ich nicht genau das gleiche Layout in der E-Mail haben möchte.
Das könnte ich jedoch anpassen.
Aber ich benutze in Excel noch in verschiedenen Zellen Steuerelemente, die beim Kopieren dann nicht übernommen werden, diese (bzw. deren ausgewählter Inhalt) fehlen dann in der Mail, das ist problematisch...
dann kann ich nicht helfen.
Tino

Hallo,
kenne Deine Tabelle nicht und auch nicht was du in der Mail haben willst und was nicht.
Ich lass die Frage offen stehen.
Gruß Tino
AW: dann kann ich nicht helfen.
Katie

Tino, dein Code kopiert die Tabelle mit einem "komischen" Einzug in die E-Mail.
Die Tabelle steht dadurch immer in der Mitte.
Kann man das ändern, bzw. wie/wo?
Danke & Gruss
Katie
ersetze center durch left
Tino

Hallo,
schreibe zusätzlich nach der Code-Zeile
sHTML = RangeToHTML(.Range("A1", .Cells(lngRow, lngCol)))

diese
sHTML = Replace(sHTML, "align=center", "align=left")

Gruß Tino
AW: dann kann ich nicht helfen.
Katie

Tino, dein Code kopiert die Tabelle mit einem "komischen" Einzug in die E-Mail.
Die Tabelle steht dadurch immer in der Mitte.
Kann man das ändern, bzw. wie/wo?
Danke & Gruss
Katie
Xl-Steuerelemente sind primär BildObjekte mit ...
Luc:-?

…ZusatzFunktion, Katie,
die kannst du nicht so einfach in HTML übernehmen. Warum benutzt du nicht die von MS vorgesehene HTML-Ausgabe der Datei? Das wird dann sehr viel mehr, könnte aber eher fktsfähig sein…
Ansonsten gibt's ja noch die Möglichkeit, die Xl-Datei als Anlage zu versenden.
Morrn, Luc :-?
Datum: " & Dt & "

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: HTML Tabelle in Outlook erzeugen
18.07.2017 15:37:59
Katie
Hm, da wurde wohl aufgrund des HTML Syntax etwas verhauen...
Hinter "Tabelle & Spalte" = folgt der Code für eine HTML Tabelle; wie das genau aussieht sollte aber für meine Frage nicht relevant sein.
AW: HTML Tabelle in Outlook erzeugen
18.07.2017 15:56:34
Tino
Hallo,
kannst mal diesen Code testen.
Tabelle wo die Daten sind musst du natürlich anpassen!
Sub Makro1()
Dim sHTML$
Dim lngRow&, lngCol&
Dim MyOutApp As Object, MyMessage As Object

With Tabelle1 'Tabelle anpassen
lngRow = .Cells(.Rows.Count, 1).End(xlUp).Row 'letzte Zeile
lngCol = .Cells(1, .Columns.Count).End(xlToLeft).Column 'letzte Spalte
sHTML = RangeToHTML(.Range("A1", .Cells(lngRow, lngCol))) 'Range in HTML
End With

Set MyOutApp = CreateObject("Outlook.Application")
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = "Hier kommt die Adresse rein"
.Subject = "hier der Betreff"
.htmlbody = sHTML
' .Attachments.Add 'für Anlagen
.Importance = 2 'Wichtigkeit hoch
.Display
'.Send 'Hier wird die Mail gesendet
End With

Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

Function RangeToHTML(rng As Range) As String
Dim sPath$
Dim F%

sPath = ThisWorkbook.Path
sPath = sPath & IIf(Right$(sPath, 1) <> "\", "\", "")
sPath = sPath & "TmpHtml.html"

With ThisWorkbook.PublishObjects.Add(xlSourceRange, sPath, _
rng.Parent.Name, rng.Address, xlHtmlStatic, "", "")
.Publish (True)
.AutoRepublish = False
End With

F = FreeFile
Open sPath For Binary As #F
RangeToHTML = Space$(LOF(F))
Get #F, , RangeToHTML
Close
Kill sPath
End Function
Gruß Tino
Anzeige
AW: HTML Tabelle in Outlook erzeugen
18.07.2017 16:04:03
Katie
Hallo Tino
Prinzipiell funktioniert der Code, aber ich verwende die Tabelle eigentlich etwas anders.
Dein Code "kopiert" ja die Zellen aus Excel, ich habe vorher die Tabelle mit Daten aus verschiedenen Zelllen befüllt, da ich nicht genau das gleiche Layout in der E-Mail haben möchte.
Das könnte ich jedoch anpassen.
Aber ich benutze in Excel noch in verschiedenen Zellen Steuerelemente, die beim Kopieren dann nicht übernommen werden, diese (bzw. deren ausgewählter Inhalt) fehlen dann in der Mail, das ist problematisch...
dann kann ich nicht helfen.
18.07.2017 16:35:03
Tino
Hallo,
kenne Deine Tabelle nicht und auch nicht was du in der Mail haben willst und was nicht.
Ich lass die Frage offen stehen.
Gruß Tino
Anzeige
AW: dann kann ich nicht helfen.
19.07.2017 09:39:03
Katie
Tino, dein Code kopiert die Tabelle mit einem "komischen" Einzug in die E-Mail.
Die Tabelle steht dadurch immer in der Mitte.
Kann man das ändern, bzw. wie/wo?
Danke & Gruss
Katie
ersetze center durch left
19.07.2017 10:07:05
Tino
Hallo,
schreibe zusätzlich nach der Code-Zeile
sHTML = RangeToHTML(.Range("A1", .Cells(lngRow, lngCol)))

diese
sHTML = Replace(sHTML, "align=center", "align=left")

Gruß Tino
AW: dann kann ich nicht helfen.
19.07.2017 10:04:27
Katie
Tino, dein Code kopiert die Tabelle mit einem "komischen" Einzug in die E-Mail.
Die Tabelle steht dadurch immer in der Mitte.
Kann man das ändern, bzw. wie/wo?
Danke & Gruss
Katie
Anzeige
Xl-Steuerelemente sind primär BildObjekte mit ...
19.07.2017 03:46:05
Luc:-?
…ZusatzFunktion, Katie,
die kannst du nicht so einfach in HTML übernehmen. Warum benutzt du nicht die von MS vorgesehene HTML-Ausgabe der Datei? Das wird dann sehr viel mehr, könnte aber eher fktsfähig sein…
Ansonsten gibt's ja noch die Möglichkeit, die Xl-Datei als Anlage zu versenden.
Morrn, Luc :-?

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige