sichtbare zellen inkrementell kopieren

05/08/2008 - 17:14 von kai | Report spam
Hallo,

Ich muss in einer mit Autofilter gefilterten Tabelle sichtbare Zellen
kopieren. Leider kann ich nicht einfach die ganze sichtbare Tabelle bzw.
mehrere sichtbare Zellen gleichzeitg kopieren, sondern ich muss jede einzelne
inkrementell kopieren, weil diese jeweils 1000 Zeilen auseinander sein
müssen. Diese kopierte Zelle ist nàmlich Ausgangspunkt weiterer
manipulationen (v. a. SVERWEISe).

Mir ist es nicht klar, aber ich nehme an, dass ich diese folgende Zeile
entsprechend abàndern muss:

worksheet1.AutoFilter.Range.SpecialCells(xlVisible).Copy Destination:
worksheet1

Wie kann ich zudem das Kopieren so adressieren, dass die kopierten Zellen
jeweils inkrementell um 1000 nach unten verschoben werden?

Programmiert wird mit Excel 2007.
vielen Dank für jeden Hinweis im Voraus!
 

Lesen sie die antworten

#1 Claus Busch
05/08/2008 - 17:27 | Warnen spam
Hallo Kai,

Am Tue, 5 Aug 2008 08:14:02 -0700 schrieb kai:

Ich muss in einer mit Autofilter gefilterten Tabelle sichtbare Zellen
kopieren. Leider kann ich nicht einfach die ganze sichtbare Tabelle bzw.
mehrere sichtbare Zellen gleichzeitg kopieren, sondern ich muss jede einzelne
inkrementell kopieren, weil diese jeweils 1000 Zeilen auseinander sein
müssen. Diese kopierte Zelle ist nàmlich Ausgangspunkt weiterer
manipulationen (v. a. SVERWEISe).

Mir ist es nicht klar, aber ich nehme an, dass ich diese folgende Zeile
entsprechend abàndern muss:

worksheet1.AutoFilter.Range.SpecialCells(xlVisible).Copy Destination:
worksheet1

Wie kann ich zudem das Kopieren so adressieren, dass die kopierten Zellen
jeweils inkrementell um 1000 nach unten verschoben werden?



wenn nach dem Filtern die erste sichtbare Zeile die Zeile 5 ist, dann
soll diese nach Zeile 1005 kopiert werden? Wenn dann die nàchste
sichtbare die 8 ist, nach 1008? Also mit Leerzellen dazwischen?
Dann probiere es mal so (deinen Bereich musst du noch entsprechend
anpassen):
Sub Kopieren()

Dim rngZelle As Range

Application.ScreenUpdating = False
With ActiveSheet
'Hier den Bereich der Tabelle anpassen
For Each rngZelle In .Range("A2:A1000").SpecialCells(xlCellTypeVisible)
rngZelle.Copy _
Destination:=Cells(rngZelle.Row + 1000, 1)
Next
End With
Application.ScreenUpdating = True

End Sub


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2 / Vista Ultimate
Office 2003 SP2 / 2007 Ultimate

Ähnliche fragen