Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1148to1152
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

bestimmte Zeilen nach einer Bedingung kopieren

bestimmte Zeilen nach einer Bedingung kopieren
Andre
Hi Leute,
ich werde noch verrückt mit dem code. Ich möchte gerne bestimme Zeilen von einem Sheet ins nächste kopieren, wenn zwei Bedinungen (mit Oder) erfüllt sind.
Leider klappt meine Schleife irgendwie nicht. i müsste bei jedem Durchgang höher gehen um alle 50k Zeilen zu prüfen und zu kopieren.
Kann mir jemand auf die Sprünge helfen, wo es hakt.

Private Sub copy_Act_Sav()
Dim ActSavprozentMin, ActSavprozentMax As Long
Dim i As Integer
Dim LZDataRow As Integer
Dim Ziel, Quelle As Worksheet
Dim LZData As Range
Application.ScreenUpdating = False
Application.Calculation = xlManual
wb_ziel = ActiveWorkbook.Name
ActSavprozentMin = Workbooks(wb_ziel).Worksheets("Home").Cells(2, 3)
ActSavprozentMax = Workbooks(wb_ziel).Worksheets("Home").Cells(2, 4)
Set Quelle = Workbooks.Item(1).Worksheets("Data")
Set Ziel = Workbooks.Item(1).Worksheets("test")
i = 1
Do Until Quelle.Cells(i, 1)  ""
If (ActSavprozentMin > Quelle.Cells(i, 201)) Or (ActSavprozentMax 

Vielen Dank schon mal im voraus
Gruss
andre
AW: bestimmte Zeilen nach einer Bedingung kopieren
09.04.2010 13:38:55
fcs
Hallo Andre,
prüfe mal die folgende Bedingungung:
Do Until Quelle.Cells(i, 1)  ""

Danach wird die Schleife beendet, wenn in Spalte A in der Zelle ein Inhalt vorhanden ist.
Wahrschscheilich muss die Prüfung so lauten:
Do Until Quelle.Cells(i, 1) = ""
So wird die Schleife durchlaufen bis die 1. leere Zelle in Spalte A auftaucht.
Ansonsten kannst du auf Activate und Select verzichten, da du Quelle und Ziel-Tabelle ja deklariert und zugewiesen hast. Das beschleunigt die Ausführung nochmals ungemein.
Gruß
Franz
Private Sub copy_Act_Sav()
Dim ActSavprozentMin, ActSavprozentMax As Long
Dim i As Integer
Dim LZDataRow As Integer
Dim Ziel As Worksheet, Quelle As Worksheet
Dim LZData As Range
Application.ScreenUpdating = False
Application.Calculation = xlManual
wb_ziel = ActiveWorkbook.Name
ActSavprozentMin = Workbooks(wb_ziel).Worksheets("Home").Cells(2, 3)
ActSavprozentMax = Workbooks(wb_ziel).Worksheets("Home").Cells(2, 4)
Set Quelle = Workbooks.Item(1).Worksheets("Data")
Set Ziel = Workbooks.Item(1).Worksheets("test")
i = 1
Do Until Quelle.Cells(i, 1)  ""
If (ActSavprozentMin > Quelle.Cells(i, 201)) _
Or (ActSavprozentMax 

Anzeige
AW: bestimmte Zeilen nach einer Bedingung kopieren
09.04.2010 14:30:37
Andre
Erstmal vielen Dank, der Code schaut schon mal viel besser aus.
Leider entsteht beim kopieren ein Laufzeitenfehler. Ich habe mall eine Testversion gemacht,
um das Problem besser zu verstehen.
https://www.herber.de/bbs/user/68989.xls
Gruss
Andre
AW: bestimmte Zeilen nach einer Bedingung kopieren
09.04.2010 14:32:19
Andre
Hi,
erstmal vielen Dank, der Code sieht schon verdammt gut aus und wesentlich kürzer.
Leider tritt immer noch ein Laufzeitenfehler auf. Um es besser zu verstehen, habe ich eine test version gemacht.
https://www.herber.de/bbs/user/68989.xls
Gruss
Andre
Anzeige
AW: bestimmte Zeilen nach einer Bedingung kopieren
09.04.2010 15:24:11
Andre
Hi,
erstmal vielen Dank, der Code sieht schon verdammt gut aus und wesentlich kürzer.
Leider tritt immer noch ein Laufzeitenfehler auf. Um es besser zu verstehen, habe ich eine test version gemacht.
https://www.herber.de/bbs/user/68989.xls
Gruss
Andre
AW: bestimmte Zeilen nach einer Bedingung kopieren
09.04.2010 15:26:43
fcs
Hallo Andre,
ich hab die Zuweisung der Tabellen Ziel und Quelle angepasst und die Ermittlung der nächsten Zeile im Zielblatt.
Gruß
Franz
Private Sub copy_Act_Sav()
Dim ActSavprozentMin, ActSavprozentMax As Long
Dim i As Integer
Dim LZDataRow As Integer
Dim Ziel As Worksheet, Quelle As Worksheet
Dim LZData As Range
Application.ScreenUpdating = False
Application.Calculation = xlManual
wb_ziel = ActiveWorkbook.Name
ActSavprozentMin = Workbooks(wb_ziel).Worksheets("Home").Cells(2, 3)
ActSavprozentMax = Workbooks(wb_ziel).Worksheets("Home").Cells(2, 4)
Set Quelle = Workbooks(wb_ziel).Worksheets("Data")
Set Ziel = Workbooks(wb_ziel).Worksheets("test")
i = 1
Do Until Quelle.Cells(i, 1) = ""
If (ActSavprozentMin > Quelle.Cells(i, 4)) _
Or (ActSavprozentMax 

Anzeige
AW: bestimmte Zeilen nach einer Bedingung kopieren
09.04.2010 15:51:00
Andre
Hi Franz,
wir sind fast am Ziel, leider wird nur eine Zeile kopiert. Es sollten ja alle Zeilen kopiert werden, die die Bedingung erfüllen. Bin aber noch nicht draufgekommen warum Hast du eine Idee.
Gruss
Andre
AW: bestimmte Zeilen nach einer Bedingung kopieren
10.04.2010 07:30:04
fcs
Hallo Andre,
da fehlte noch ein "+ 1"
         LZDataRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1

Gruß
Franz
AW: bestimmte Zeilen nach einer Bedingung kopieren
12.04.2010 09:47:50
Andre
Hi Franz,
sorry für die späte Antwort, aber es funktioniert jetzt einwandfrei.
Gruss
Andre

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige