Anzeige
Archiv - Navigation
1936to1940
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
mitkopieren der Zeilenhöhe
18.07.2023 12:51:01
Pascal Gundlach
Hallo in die Runde.

habe als VBA anfänger ein Problem, dass ich mit alleiniger Recherche nicht lösen kann und hoffe hier Hilfe zu finden. Bin nach zwei Tagen so matschig im Kopf, dass ich die Formularspamschutzfrage mit dem Taschenrechner lösen musste.
Habe aus dem Forum immerhin schon wahnsinnig viel mitgenommen und gelernt =).

Es geht um eine Berichtserstellung, die wir automatisieren wollen. Hintergrund ist der, dass meine Kollegen und ich es alle zu uneinheitlich machen.

1. Auf einem Worksheet soll der Bericht geschrieben werden mit per Makro einzufügenden Zeilen - funktioniert (wenn auch evtl. hässlich, aber hey...)
2. Der ausgefüllte dynamische Bereich soll kopiert werden. - funktioniert
3. Der kopierte Teil soll ab einer bestimmten Stelle in einem anderen Blatt eingefügt werden - funktioniert leider nur ohne Zellenhöhenanpassung

Ganze Zeilen kann ich leider nicht kopieren und die VBA lösungen zur .Rangefunktion geht mir noch über den Kopf

So habe ich momentan das Kopieren und Einfügen gelöst:


Sub Bereichsauswahl_Bericht()

' markiert dynamisch den ausgefüllten Bericht aus und kopiert ihn

Dim sht As Worksheet
Dim LR As Long
Dim FirstCell As Range

Set sht = Worksheets("Tabelle1")
Set FirstCell = Range("C2")
LR = sht.Cells.Find("*", SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
sht.Range("C2:K" & LR).Copy Worksheet("report full").Cells(22, 1)

End Sub


Das ist die angehangene Datei
https://www.herber.de/bbs/user/159970.xlsm

Vielen Dank schonmal für die Antworten =D

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mitkopieren der Zeilenhöhe
18.07.2023 13:28:40
MCO
Hallo Pascal!

Probiere es mal so:

Sub Bereichsauswahl_Bericht()

' markiert dynamisch den ausgefüllten Bericht aus und kopiert ihn
    Dim sht As Worksheet, rf As Worksheet
    Dim LR As Long
    Dim rng As Range
    Dim zeil As Long
    'Dim FirstCell As Range
    
    Set sht = Worksheets("Tabelle1")
    Set rf = Worksheets("report full")
    'Set FirstCell = Range("C3")
    LR = sht.Cells.Find("*", _
            SearchOrder:=xlByRows, _
            SearchDirection:=xlPrevious).Row
    
    Set rng = sht.Range("C3:K" & LR)
    rng.Copy rf.Cells(22, 1)
    
    For zeil = rng.Row To rng.Row + rng.Rows.Count - 1 'durch alle Zeilen des Bereichs gehen
        rf.Rows(zeil).RowHeight = sht.Rows(zeil).RowHeight 'höhe kopieren
    Next zeil
End Sub

Gruß, MCO

Anzeige
AW: mitkopieren der Zeilenhöhe
18.07.2023 13:44:30
Pascal Gundlach
Hey MCO,
danke für die superschnelle Antwort.

Wenn ich den Code so nutze formatiert er die Zeilenhöhe in der Zielmappe von Zeile 1 an.
Bräuchte die übernommene Zeilenhöhe allerdings im hereinkopierten Bereich ab Zeile 22.


'Dim FirstCell As Range
.
.
.'Set FirstCell = Range("C3")

' als Kommentar, weil man die ja nicht braucht? Sorry für die Leienfragen =)
Liebe Grüße

AW: mitkopieren der Zeilenhöhe
18.07.2023 13:50:06
Daniel
Hi

for i = 2 to LR
    Worksheet("report full").Rows(20 + i).RowHeight = sht.Rows(i).RowHeight
Next
Gruß Daniel

Anzeige
AW: mitkopieren der Zeilenhöhe
18.07.2023 13:53:53
GerdL
Moin
For zeil = rng.Row To rng.Row + rng.Rows.Count - 1 'durch alle Zeilen des Bereichs gehen
rf.Rows(zeil + 19).RowHeight = sht.Rows(zeil).RowHeight 'höhe kopieren
Next zeil
Gruß Gerd

AW: mitkopieren der Zeilenhöhe
18.07.2023 13:59:36
Pascal Gundlach
Hallo Daniel, Hallo Gerd,

Es funktioniert =DD meine Güte Ahnung müsste man haben.
Habe im Code den Zusatz von Gerd genutzt.

Vielen lieben Dank. Da kommen sicher weitere Fragen.

Schöne Woche euch allen!

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige