Markierten Bereich kopieren & Zeilenhöhe beibehalten

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Thomas1991.

    Markierten Bereich kopieren & Zeilenhöhe beibehalten

    Hallo,

    ich habe wieder ein Problem mit einem meiner Makros. Ich versuche einen markierten Bereich in eine neue Mappe zu kopieren ohne dabei die Zeilengröße zu verändern. Ich schaffe es zwar die Zeilenbreite beizubehalten, jedoch nicht die Zeilenhöhe.

    Hier der Code: (Nach Application.CutCopyMode = False versuche ich die Zeilenhöhe zu übertragen. Der Code-Teil darüber funktioniert ohne Probleme.)


    Sub KopierenTabellen()
    '
    ' KopierenTabellen Makro
    '

    '
    Dim strFileName As String
    Dim wkb, wkbNew As Workbook
    With Selection
    strFileName = .Cells(1, 1).Value
    .Copy
    End With
    Set wkbNew = Application.Workbooks.Add
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False
    wkbNew.Sheets(1).Paste Destination:=wkbNew.Sheets(1).Range("A3")
    Application.CutCopyMode = False
    Dim iZeile%, iStart%, iEndZeile%, iZeilenHöhe%
    Dim sQuellTabelle$, sZielTabelle$
    iStartZeile = 1
    iEndZeile = Len("strFileName")
    sQuellTabelle = "strFileName"
    sZielTabelle = "wkbNew"
    For iZeile = iStartZeile To iEndZeile
    iZeilenHöhe = Selection.Rows(iZeile & ":" & iZeile).EntireRow.RowHeight
    Workbooks(wkbNew).Sheets(1).Rows(iZeile & ":" & iZeile).EntireRowHeight = iZeilenHöhe
    Next

    End Sub



    Danke im Vorraus für eure Hilfe.
    Die Zeilenhöhe ist meines Wissens ans Zellformat gehängt (automatischer Umbruch etc.)
    Was passiert, wenn du Paste anstatt PasteSpecial verwendest?
    Oder Copy mit Destination?

    Ich blicke in deinem chaotischen Code nicht wirklich durch.
    Aber ich frage mich, warum sich das nicht als Zweizeiler lösen lassen soll.

    Visual Basic-Quellcode

    1. Set wbkNew = Workbooks.Add
    2. Selection.Copy wbkNew.Sheets(1).Range("A3")


    Vielleicht sogar als Einzeiler

    Visual Basic-Quellcode

    1. Selection.Copy Workbooks.Add().Sheets(1).Range("A3")
    Kann ich aber gerade mangels Excel nicht testen.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Danke für die Antwort, ich hatte gar nicht mehr damit gerechnet das sich noch jemand meldet. Ja das kann gut sein das der Code sehr chaotisch ist, da ich nicht wirklich sehr mit VBA vertraut bin und mir den zweiten Teil des Codes aus irgendwelchen Internetseiten zusammengestellt habe. Dein Vorschlag funktioniert leider nicht. So wie ich im Internet gelesen habe kann man alle Formatierungen außer die Zeilenhöhe ohne Probleme. Ich habe dann folgenden Code gefunden der das Problem lösen soll und ihn versucht einzuarbeiten was mir jedoch nicht gelungen ist. Ich weiss zum einen nicht wie man den Code einarbeiten soll und zum anderen nicht wie er nur den kopierten und eingefügten Bereich bwz. alles bearbeitet und nicht nur Zeile 1-13.


    Dim iZeile%, iStartZeile%, iEndZeile%, iZeilenHöhe%
    Dim sQuellTabelle$, sZielTabelle$
    ‘**Parameter festlegen
    iStartZeile = 1
    iEndZeile = 13
    sQuellTabelle = “Tabelle1″
    sZielTabelle = “Tabelle3″
    For iZeile = iStartZeile To iEndZeile
    ‘* Zeilenhöhe aus der Quelltabelle auslesen
    iZeilenHöhe = Sheets(sQuellTabelle).Rows(iZeile & “:” & iZeile).EntireRow.RowHeight
    ‘* Zeilenhöhe in der Zieltabelle einstellen
    Sheets(sZielTabelle).Rows(iZeile & “:” & iZeile).EntireRow.RowHeight = iZeilenHöhe
    Next