PDA

Vollständige Version anzeigen : Excel Sheet als HTML speichern/versenden


Dominik^^
24.09.2007, 13:04
Hallo,

Ich möchte das erste Blatt meines Excel als HTML versenden!
Ich habe auch schon folgenden Code dazu. Das Problem ist nur, dass es sich immer aufhängt wenn ich das Makro ausführe.
Private Sub SendenButton_Click()

Dim olApp As Outlook.Application
Dim olMail As MailItem

Set olApp = New Outlook.Application
Set olMail = olApp.CreateItem(olMailItem)

With olMail
.To = "irgendwer@irgendwo.com"
.Subject = "Table in body"
.HTMLBody = SheetToHTML(ActiveWorkbook.Worksheets("Report"))
.Display
End With



Set olMail = Nothing
Set olApp = Nothing
Application.Quit

End Sub

Public Function SheetToHTML(sh As Worksheet)

Dim TempFile As String
Dim fso As Object
Dim ts As Object

Randomize

sh.Copy
TempFile = sh.Parent.Path & "\TmpHTML" & Int(Rnd() * 10) & ".htm"

ActiveWorkbook.SaveAs TempFile, xlHtml
ActiveWorkbook.Close False

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)

SheetToHTML = ts.ReadAll

ts.Close
Set ts = Nothing
Set fso = Nothing
Kill TempFile

End Function

Ich suche echt schon lange an diesem Fehler, aber ich komm nicht dahinter. Außerdem bin ich nicht wirklich ein Spezialist... :(

Vielen Dank für Eure Hilfe!

mfg Dominik

Nepumuk
24.09.2007, 23:49
Hallo Dominik,

wie ist das gemeint "sich aufhängt"? Bekommst du eine Fehlermeldung? In welcher Zeile der Routinen passiert das?

Dominik^^
25.09.2007, 07:54
Hallo,

Sorry, hab ich ganz vergessen dazuzuschreiben...

Der Fehler kommt in folgender Zeile:

ActiveWorkbook.SaveAs TempFile, xlHtml

Wenn er diese Zeile aufruft, dann beendet sich Excel selbst mit einer Fehlermeldung:

Excel musste beendet werden, Daten verloren oder so ca.


mfg
Dominik

mumpel
25.09.2007, 08:52
Hallo!

Dieses Makro taugt ohnehin nichts. Es fehlen die Spalten und Zeilenköpfe, Farben sind auch keine da. Die Tabelle wird lediglich als eine Art Text mit TAbs (Abständen) dargestellt. Schau mal auf http://www.haserodt.de/ejh_do/ex_jean_info.php
Dort bekommst Du ein kleines Add-In, welches Dir die Tabelle oder eine Markierung als HTML aufbereitet. Anbei mal ein Beispiel, wie es hinterher aussieht. Datei entpacken und öffnen. Dann auf die Schaltfläche HTML Mail senden klicken. Im Dialog dann auf Erstellen klicken. Denn Text in der Textbox nicht löschen. Die Textbox bezieht den Text aus Zelle A1, dort habe ich den Text geparkt.

Gruß, Mumpel