Microsoft Excel

Herbers Excel/VBA-Archiv

vba: autogefilterte Daten schrittweise kopieren

Betrifft: vba: autogefilterte Daten schrittweise kopieren von: Bernhard
Geschrieben am: 07.07.2015 09:50:51

Hallo,

folgendes Code Schnipsel kopiert mir zwar -wie gewollt- schrittweise und zeitverzögert, aber leider sämtliche (und nicht nur die autogefilterten) Daten in das Filterergebnis sheet ("gefiltert"):

With Worksheets("kurse")
.Range(.Cells(i, 2), .Cells(i, 5)).Copy Worksheets("gefiltert").Cells(i - 21, 2)
End With

'Warten
Call Sleep(500) '0,5 Sekunden
Next i

Der Autofilter ist im Ausgangs sheet "kurse" gesetzt, und nur die Gefilterten soll er kopieren und einfügen.

Habe schon mit specialcells experimentiert, aber das funzt leider nicht...

Weiss jemand Bescheid?

Besten Dank und Grüsse,
Bernhard

  

Betrifft: AW: vba: autogefilterte Daten schrittweise kopieren von: ransi
Geschrieben am: 07.07.2015 10:05:35

Hallo,

With Worksheets("kurse")
  if .rows(i).height>0 then
     .Range(.Cells(i, 2), .Cells(i, 5)).Copy Worksheets("gefiltert").Cells(i - 21, 2)
  end if
End With
sollte klappen.

Warum die Zeitverzögerung ?

ransi


  

Betrifft: AW: vba: autogefilterte Daten schrittweise kopieren von: Bernhard
Geschrieben am: 07.07.2015 14:36:11

Hallo ransi,

damit kopiert er nur die Kopfzeile rein. Dann kommt der Warte-Mauszeiger, und mit strg Pause ist das vba nicht zu stoppen, sondern ich muss Excel abschiessen....

Die Zeitverzögerung deshalb, weil die gefilterten Daten eine Datenreihe für eine Grafik darstellen, die sich langsam aufbauen soll. Ich will also sehen, wie Excel die Kurve zeichnet....

Hier nochmal das gesamte alte vba:

Public Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

Public Sub Kopieren_langsam()
Dim loLetzteZiel As Long
Dim loletzte As Long


loLetzteZiel = Worksheets("kurse").Cells(Rows.Count, 7).End(xlUp).Row 'letzte Zeile in Spalte G
With Worksheets("kurse")
.Range(.Cells(4, 7), .Cells(loLetzteZiel, 10)).ClearContents
End With
'Call Sleep(500)
loletzte = Worksheets("kurse").Cells(Rows.Count, 2).End(xlUp).Row  'letzt Zeile in Spalte B
For i = 25 To loletzte 'von Zeile 25 bis letzt Zeile
'Copy and Paste Makro

With Worksheets("kurse")
.Range(.Cells(i, 2), .Cells(i, 5)).Copy Worksheets("gefiltert").Cells(i - 21, 2)
End With

'Warten
Call Sleep(500) '0,5 Sekunden
Next i



End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "vba: autogefilterte Daten schrittweise kopieren"