ich möchte gerne Spalte A ab Zeile 2 ( Tabellenblatt: Daten) bis nach unten (flexible )kopieren und in das Tabellenblatt Zusammenfassung Spalte E ab Zeile 3 einfügen.
Wie mache ich das ? denn ich weiß nie wieviele Zeilen in TB Daten drin sind.
Danke
Dim wksQ As Worksheet, wksZ As Worksheet
Dim letzteZ As Long
Set wksQ = Worksheets("Daten")
Set wksZ = Worksheets("Zusammenfassung")
letzteZ = Application.Max(3, wksZ.Cells(Rows.Count, 5).End(xlUp).Row + 1)
wksQ.Range("A2:A" & wksQ.Cells(Rows.Count, 1).End(xlUp).Row).Copy wksZ.Cells(letzteZ, 5)
Option Explicit
Sub Leerzeilenlöschen()
' Leerzeilen löschen einschließlich der Zeilen die entstehen wenn Zeilen am ende
' gelöscht werden, auch Leerzeilen in der Tabelle werden gelöscht
' von Wolf.W.Radzinski
On Error Resume Next
Dim r As Range
Dim anz As Long
Dim c_ges As Long
Dim col As New Collection
c_ges = ActiveSheet.UsedRange.Column + ActiveSheet.UsedRange.Columns.Count - 1
For Each r In ActiveSheet.UsedRange.EntireRow
anz = 0
anz = r.SpecialCells(xlCellTypeBlanks).Count
If anz >= c_ges Then col.Add r
Next
For Each r In col
r.Delete
Next
End Sub
Dim wksQ As Worksheet, wksZ As Worksheet
Dim letzteZ As Long
Set wksQ = Worksheets("Daten")
Set wksZ = Worksheets("Zusammenfassung")
With wksZ
letzteZ = Application.Max(3, .Cells(Rows.Count, 5).End(xlUp).Row + 1)
wksQ.Range("A2:A" & wksQ.Cells(Rows.Count, 1).End(xlUp).Row).Copy .Cells(letzteZ, 5)
If Application.CountBlank(.Range(.Cells(3, 5), .Cells(Rows.Count, 5).End(xlUp))) Then
.Range(.Cells(3, 5), .Cells(Rows.Count, 5).End(xlUp)).SpecialCells(xlBlanks).EntireRow. _
Delete
End If
End With
Sub Werte()
' Formeln ersetzen durch Werte ohne Formate
Columns("B:C").Copy
Columns("B:C").PasteSpecial Paste:=xlValues
Application.CutCopyMode = False 'Zwischenspeicher löschen
End Sub
Gruß HajoDim wksQ As Worksheet, wksZ As Worksheet
Dim letzteZ As Long
Set wksQ = Worksheets("Daten")
Set wksZ = Worksheets("Zusammenfassung")
With wksZ
letzteZ = Application.Max(3, .Cells(Rows.Count, 5).End(xlUp).Row + 1)
wksQ.Range("A2:A" & wksQ.Cells(Rows.Count, 1).End(xlUp).Row).Copy
.Cells(letzteZ, 5).PasteSpecial Paste:=xlValues'--nur Werte eintragen PasteSpecial muss _
in eine extra Codezeile
If Application.CountBlank(.Range(.Cells(3, 5), .Cells(Rows.Count, 5).End(xlUp))) Then
.Range(.Cells(3, 5), .Cells(Rows.Count, 5).End(xlUp)).SpecialCells(xlBlanks).EntireRow. _
Delete
End If
End With
Cells (letzteZ = Application.Max(3, .Cells(Rows.Count, 5).)