Kleinere Schönheitsfehler
Peter
Hallo Jürgen,
vielen Dank für Deine erneute Hilfe. Deine Lösung funktioniert prima. Es stellte sich allerdings heraus, das bei mehrfachem Ausführen des Macros, Zeilen mehrfach übertragen werden - dies konnte ich selber durch das hinzufügen der Dim ws2 lösen.
Sub Kopieren()
Dim firstAddress As String
Dim ws2 As Worksheet
Dim c As Range
Set ws2 = Worksheets("Excel")
ws2.Columns.Clear
With Worksheets(1).Columns("G")
Set c = .Find("Excel", LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
With Worksheets(2)
c.EntireRow.Copy _
Destination:=.Range("A" & .Cells(.Rows.Count, "A").End(xlUp).Row + 1)
c.EntireRow.Copy
.Range("A" & .Cells(.Rows.Count, "A").End(xlUp).Row).PasteSpecial Paste:= _
xlPasteFormats
Application.CutCopyMode = False
End With
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address firstAddress
End If
End With
End Sub
Ein Problem was bleibt ist der Zustand, dass die komplette Zeile übertragen wird. Ich kann also auf meinem "Worksheet2" nichts in einer Spalte dazuschreiben, weil das bei jeder Macroausführung wieder überschrieben wird.
1. Kann man das Kopieren der Zeile bis zu einer bestimmten Zeile begrenzen? (in meinem Fall Spalte M)
2. Ein zweiter kleiner Schönheitsfehler entsteht, dass im "Worksheet2" das beschreiben mit Zelle A2 beginnt. Ich würde gerne ein wenig mehr Platz haben (für Überschrift, etc.). Ändere ich nun Row +1 auf beispielsweise +2, fängt er zwar erst in Zelle A3 an, aber lässt auch zwischen jedem Eintrag eine Leerzeile. Wie kann man das lösen?
Danke & Gruß
Peter