Herbers Excel-Forum - das Archiv

Zeilenbereiche kopieren

Bild

Betrifft: Zeilenbereiche kopieren
von: Marco
Geschrieben am: 01.10.2003 12:10:17
hallo zusammen,
hab gerade beim ausführen eines Markos gemerkt das ich noch ein kleines Porblem habe. Wenn ich dieses Makro ausführe Importiert er mir von einer angefügten Tabelle bestimmte bereiche in Meine Haupttabelle.
Allerdings wenn ich es mermals ausführe macht er die Daten nicht untereinander wie er es sollte sondern überschreibt mir die bereits importierten Daten.
Das ist das Makro:

Sub CopyList_ProE()
Dim wksQ As Worksheet
Dim wksZ As Worksheet
Dim lngLQZeil As Long
Dim lngLZZeil As Long
Dim lngRecords As Long
Set wksZ = Worksheets("Liste")
Set wksQ = Worksheets(Worksheets.Count)
lngLZZeil = wksZ.Cells(wksZ.Rows.Count, 1).End(xlUp).Row + 3
With wksQ
lngLQZeil = .Cells(.Rows.Count, 1).End(xlUp).Row
If lngLQZeil = 2 Then
MsgBox "Keine neuen Daten"
Exit Sub
End If
With .Range(.Cells(1, 1), .Cells(1))
lngRecords = .Rows.Count
.Copy
wksZ.Range(wksZ.Cells(lngLZZeil, 1), wksZ.Cells(lngLZZeil + lngRecords - 1, 1)).PasteSpecial xlPasteValues
End With
With .Range(.Cells(2, 1), .Cells(lngLQZeil, 1))
lngRecords = .Rows.Count
.Copy
wksZ.Range(wksZ.Cells(lngLZZeil, 2), wksZ.Cells(lngLZZeil + lngRecords - 1, 2)).PasteSpecial xlPasteValues
End With
With .Range(.Cells(2, 3), .Cells(lngLQZeil, 3))
lngRecords = .Rows.Count
.Copy
wksZ.Range(wksZ.Cells(lngLZZeil, 3), wksZ.Cells(lngLZZeil + lngRecords - 1, 3)).PasteSpecial xlPasteValues
End With
With .Range(.Cells(2, 4), .Cells(lngLQZeil, 4))
lngRecords = .Rows.Count
.Copy
wksZ.Range(wksZ.Cells(lngLZZeil, 9), wksZ.Cells(lngLZZeil + lngRecords - 1, 9)).PasteSpecial xlPasteValues
End With
With .Range(.Cells(2, 5), .Cells(lngLQZeil, 5))
lngRecords = .Rows.Count
.Copy
wksZ.Range(wksZ.Cells(lngLZZeil, 4), wksZ.Cells(lngLZZeil + lngRecords - 1, 4)).PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
End With
End Sub


Vielen Dank für eure Hilfe

viele grüsse

Marco
Bild

Betrifft: AW: Zeilenbereiche kopieren
von: Hans W. Herber
Geschrieben am: 02.10.2003 04:43:09
Hallo Marco,

Du schreibst in Deine Variable lngLZZeil die letzte genutzte Zelle in Spalte A. Da aber die Daten nur in die erste Zeile in Spalte A geschrieben werden, werden bei einem erneuten Aufruf die Folgedaten überschrieben. Also darfst Du nicht von A ausgehen, sondern von der Spalte, in die die meisten Zeilen übernommen werden.

gruss hans
 Bild
Excel-Beispiele zum Thema " Zeilenbereiche kopieren "
Blätter in andere Arbeitsmappen kopieren Module von Mappe zu Mappe kopieren
Arbeitsblatt 40 mal kopieren Schriftgröße beim Kopieren verdoppeln
Beim Kopieren auch die Zeilenhöhe und Spaltenbreite übernehmen Tabellencode nach Kopieren des Blattes löschen
Arbeitsmappe blitzschnell kopieren VBE-Namen der Blattmodule beim Kopieren festlegen
Blattinhalt von einer zur anderen Arbeitsmappe kopieren Formel bis zur letzten Zeile der Nebenspalte kopieren