106543
May 03, 2013
16757
10
0
VBA - Tabellenformatierung in Mail beibehalten
Hi Leute
immer noch bin ich am selben Tool dran und immer noch bereitet mir die tabelle Kopfzerbrechen
habe folgenden Code:
nun fügt er mir zwar brav die Tabelle in Outlook ein, aber die Formatierung ist total zerschossen und die Tabellen-"Trenn"-Linien werden nicht mehr angezeigt
Weiß einer von euch ´ne Möglichkeit, das Ding wieder zu formatieren ?
Grüße
Exze
immer noch bin ich am selben Tool dran und immer noch bereitet mir die tabelle Kopfzerbrechen
habe folgenden Code:
Sub Mail_senden()
sNachricht = UserForm1.TextBox_Mailtext.Text
If sBetreff = "" Or sNachricht = "" Or sEmpfänger = "" Then
MsgBox "Es muss ein Betreff, ein Text und ein Empfänger für die Nachricht gegeben sein." & vbCrLf & "Bitte die Ressourcen-Listen überprüfen.", , "Error"
Call Log_Meldung("Entweder Betreff, Nachricht oder Empfänger leer. Abbruch des Mailversands.")
Exit Sub
End If
If UserForm1.Option_Retoure = True Then
Dim iZelle2 As String
For i = 2 To 40
If Worksheets(2).Cells(i, 1) = "" Then
i = i - 1
Exit For
End If
Next
sZelle2 = "D" & i
ThisWorkbook.Sheets("Tabelle2").Select
Range("A1", sZelle2).Select
Application.Selection.Copy
Dim oClipboard As Object
Dim sClipBoardString As String
Set oClipboard = New DataObject
oClipboard.GetFromClipboard
sClipBoardString = oClipboard.GetText
sNachricht = Replace(sNachricht, "Bitte hier die Tabelle einfügen... (STRG +V)", sClipBoardString)
End If
Dim sAbsender As String
Dim Outlook As Object
Dim Nachricht As Object
Set Outlook = CreateObject("Outlook.Application")
Set Nachricht = Outlook.CreateItem(0)
sAbsender = "Ftth-Aussendienst@telekom.de"
'Nachricht.To sEmpfänger
Nachricht.Recipients.Add sEmpfänger
Nachricht.SentOnBehalfOfName = sAbsender
Nachricht.CC = "Ralf.Jochim@telekom.de;AEngel.telekom.de"
Nachricht.Subject = sBetreff
Nachricht.Body = sNachricht
Nachricht.ReadReceiptRequested = False
Nachricht.Display
Call Log_Meldung("Mail wurde erstellt mit dem Empfänger: " & sEmpfänger & " und dem Absender: " & sAbsender & " und dem Betreff: " & sBetreff & " und dem Nachrichtentext: " & sNachricht)
Set Outlook = Nothing
End Sub
nun fügt er mir zwar brav die Tabelle in Outlook ein, aber die Formatierung ist total zerschossen und die Tabellen-"Trenn"-Linien werden nicht mehr angezeigt
Weiß einer von euch ´ne Möglichkeit, das Ding wieder zu formatieren ?
Grüße
Exze
Please also mark the comments that contributed to the solution of the article
Content-Key: 205981
Url: https://administrator.de/contentid/205981
Printed on: April 27, 2024 at 03:04 o'clock
10 Comments
Latest comment
Du könntest den Inhalt des Ranges in HTML wandeln und dann in die Mail einfügen wie hier beschrieben:
http://www.rondebruin.nl/win/s1/outlook/bmail2.htm
http://www.rondebruin.nl/win/s1/outlook/bmail2.htm
Noch zur Info ein Zellenbereich lässt sich auch als Bild kopieren. Dann sieht das beim Empfänger immer gleich aus.
In deinem Script in Zeile 23:
--edit--
nach dem aufrufen der .Display-Methode kannst du noch folgendes machen damit das Mailfenster zuverlässiger in den Vordergrund kommt:
In deinem Script in Zeile 23:
Application.Selection.CopyPicture
--edit--
nach dem aufrufen der .Display-Methode kannst du noch folgendes machen damit das Mailfenster zuverlässiger in den Vordergrund kommt:
Outlook.ActiveInspector.Activate
Application.Wait (10)
=> geht nicht ... Die Zeit muss im Datumsformat von Excel erfolgen z.B. soApplication.Wait Now + TimeValue("0:00:01")
Hallo Exzellius!
Hier noch was zum experimentieren...:
Gruß Dieter
[edit]
Der Vollständigkeit halber noch colinardos Anregung mit CopyPicture und GetInspector...:
[/edit]
Hier noch was zum experimentieren...:
Dim oHtml As PublishObject
Dim sSheetName As String
Dim sSheetRange As String
Dim sHtmFile As String
Dim sHtmTitel As String
Dim sHtmBody As String
Dim sHtmText As String
sSheetName = "Tabelle1" 'Tabellenname
sSheetRange = "A1:F20" 'Tabellen-Bereich
sHtmTitel = "Mein Titel" 'Überschrift Fett
sHtmText = "Mein Text" 'Text
sHtmFile = Environ("Temp") & "\" & sSheetName & ".htm"
Set oHtml = ThisWorkbook.PublishObjects.Add( _
SourceType:=xlSourceRange, Filename:=sHtmFile, _
Sheet:=sSheetName, Source:=sSheetRange, Title:=sHtmTitel)
oHtml.Publish True 'Htm-Datei erzeugen
sHtmBody = CreateObject("Scripting.FileSystemObject").OpenTextFile(sHtmFile).ReadAll
sHtmBody = Replace(sHtmBody, "<table", "<p>" & sHtmText & "</p>" & vbCrLf & "<table")
'.....
'.HTMLbody = sHtmBody
'.....
oHtml.Delete: Kill sHtmFile
Gruß Dieter
[edit]
Der Vollständigkeit halber noch colinardos Anregung mit CopyPicture und GetInspector...:
Sheets("Tabelle1").Range("A5:F8").CopyPicture xlScreen, xlBitmap
With CreateObject("Outlook.Application").CreateItem(0)
'......
.Body = sMessage
With .GetInspector.WordEditor.Paragraphs
.Add
.Last.Range.Paste
End With
Application.CutCopyMode = False
.Display
End With