Clever-Excel-Forum

Normale Version: Zeilenhöhe beim Kopieren nach Outlook "einfrieren"
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich übertrage eine Auswahl aus einem Tabellenblatt per Makro in ein Outlook-Nachrichtenfenster.
Dabei verändern sich die zuvor festgelegten Zeilenhöhen, was ich nicht möchte.
Den nachfolgenden VBA-Code benutze ich für den Kopiervorgang. Das "Einfrieren" der Spaltenbreiten funktioniert, das "Einfrieren" der Zeilenhöhen nicht. Weiß jemand hier eine Lösung?
Vielen Dank schon mal vorab!

Code:


Code:
Sub InfoMailDispoAlle()
    'Sheets("ETK").Visible = True
    'Sheets("ETK").Select
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs "X:\DigiDispoBuchdruck\" & Range("Y3"), CreateBackup:=False
    Application.DisplayAlerts = True
    Range("A1:Q63").Select
Dim rng As Range
Dim olapp As Object
Set olapp = CreateObject("Outlook.Application")
With olapp.CreateItem(0)
    Columns("A:S").Select
    Columns("A:S").ColumnWidth = 8
    Columns("A:A").ColumnWidth = 1
    Columns("C:C").ColumnWidth = 1
    Columns("E:E").ColumnWidth = 1
    Columns("G:G").ColumnWidth = 1
    Columns("I:I").ColumnWidth = 1
    Columns("K:K").ColumnWidth = 1
    Columns("M:M").ColumnWidth = 1
    Columns("O:O").ColumnWidth = 1
    Columns("Q:S").ColumnWidth = 1
    Rows("1:63").Select
    Rows("1:63").RowHeight = 15
    Rows("4:4").RowHeight = 3
    Rows("6:6").RowHeight = 3
    Rows("10:10").RowHeight = 3
    Rows("12:12").RowHeight = 3
    Rows("14:14").RowHeight = 3
    Rows("16:16").RowHeight = 3
    Rows("19:19").RowHeight = 3
    Rows("22:22").RowHeight = 3
    Rows("25:25").RowHeight = 3
    Rows("28:28").RowHeight = 3
    Rows("31:31").RowHeight = 3
    Rows("34:34").RowHeight = 3
    Rows("37:37").RowHeight = 3
    Rows("40:40").RowHeight = 3
    Rows("43:43").RowHeight = 3
    Rows("46:46").RowHeight = 3
    Rows("49:49").RowHeight = 3
    Rows("54:54").RowHeight = 3
    Rows("56:56").RowHeight = 3
    Rows("62:62").RowHeight = 3
    Range("A1:Q63").Select

Set rng = Selection
    .HtmlBody = RangetoHTML(rng)
    .to = Range("Y7").Value
    .cc = Range("Y9").Value
    .Subject = Range("Y11").Value
   '.bcc = "mail1@server.de,mail2@server.de,mail3@server.de" 'optional Blindkopie an
   '.ReadReceiptRequested = True ' optional Lesebestätigung anfordern
    .Display
End With
    Set rng = Nothing
    Set olapp = Nothing
    Range("F3").Select
    Sheets("ETK").Visible = False
End Sub
Hallöchen,

der Code zum Einstellen der Zeilenhöhe ist zumindest funktionell ok. Was heißt "funktioniert nicht" ?

Du könntest Dir ein paar Zeilen sparen, bei der Zeilenhöhe z.B so:
Range("A4, A6, A10").EntireRow.RowHeight = 3
Hallo André,
zunächst vielen Dank für den Hinweis mit der Aneinanderreihung der Zeilennummern in der Anweisung.

Wenn ich mit diesem Code den Bereich in Outlook übertrage, geht der Wert von 3 verloren, stattdessen werden die Zeilen mit 15 Höhe übertragen.

Ich komme hier immer noch nicht weiter. Möglicherweise ist die Ursache, dass auch eine leere Zeile eine vordefinierte Schriftgröße hat und beim Zwischenexport in HTML die Schriftgröße verantwortlich ist für den Verlust der Zeilenhöhe.

Ich werde das mal austesten (mit Schriftgröße 0, sofern das geht)

Nachtrag und Lösungsansatz:
Es ist genaus so, wie ich es zuvor beschrieben habe.
Excel legt die Standard-Schriftgröße fest und gibt diese beim Export nach HTML mit.
Ich habe die Schriftgröße in den betroffenen Zeilen auf 1 geändert (anstatt 11) und kann jetzt auch die Zeilen in der richtigen Höhe nach Outlook überführen.

Das Thema kann somit geschlossen werden.