Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1540to1544
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

Zeilen verschieben wenn Bedingung erfüllt

Zeilen verschieben wenn Bedingung erfüllt
16.02.2017 10:37:06
Georg
Liebe Mitglieder:
Folgender code macht nicht exakt, das was ich möchte. Es scheitert an meinen wenigen VBA Kenntnissen:
1. Es soll ein bestimmter Wert abgefragt werden(gleich oder kleiner): momentan w, es handelt sich eig. um einen Zeitwert von 10 Sekunden, ich hab es in eine Zahl umgewandelt. Lieber wäre mir aber wenn eine bestimmte Zelle, wo der Wert drin steht abgefragt wird.
2. Die Zeilen sollen nicht kopiert werden, sondert verschoben z. B. nach Tabellenblatt "Kleiner"
3. Wenn der Code durchläuft, werden vier Zeilen kopiert, es müssten aber 192 Zeilen gefunden werden, die diesen wert oder kleiner haben. (Hab ich über Filterfunktion überprüft. Ursache mir nicht klar?)
4. Schön wäre - aber kein MUSS - wenn man das dynamisch gestalten könnte mit rows.Count oder so. Momentan sind es immer 2000 Zeilen, aber das kann sich ändern.
Sub test()
Dim a As Long
Dim i As Long
Dim w As Long
w = 1.15740740740741E-04
Application.ScreenUpdating = False
a = 2
For i = 1 To 2001
With Worksheets(1)
If .Cells(i, "D") 

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen verschieben wenn Bedingung erfüllt
16.02.2017 11:14:56
Werner
Hallo Georg,
als erstes: Lass die Schleife mal rückwärts laufen. Vermutlich liegt es daran, dass mehrere Zeile verschoben werden sollen, die unmittelbar nacheinander stehen. Deshalb Schleife rückwärts.
For i = 2001 To 1 Step -1
Zur Dynamik: Da solltest du mitteilen, in welcher Spalte die letzte belegte Zeile ermittelt werden soll.
Gruß Werner
AW: Zeilen verschieben wenn Bedingung erfüllt
16.02.2017 11:37:55
Georg
Leider keine Verbesserung, ich hab nochmals es überprüft:
Der Code kopiert im momentanen Zustand nur die Zeilen, die den Wert 00:00:00 enthalten, das sind genau vier Stück, die anderen ignoriert er aus mir nicht erklärlichen Gründen.
Die Spalte, über die gezählt wird, kann gleich Spalte A sein.
Anzeige
falscher Datentyp
16.02.2017 12:19:49
Rudi
Hallo,
du hast w as Long deklariert. Long kann nur Ganzahlen aufnehmen. Ergo ist w = 0.
Dim w as Double
w = timeserial(0,0,Range("A1"))
Gruß
Rudi
AW: falscher Datentyp
16.02.2017 12:32:57
Georg
Hallo Rudi, schon viel besser (hätte ich auch selbst drauf kommen können...)
Wie kann ich die Zeilen verschieben - nicht kopieren?
AW: falscher Datentyp
16.02.2017 12:43:36
Rudi
Hallo,
Sub test()
Dim i As Long
Dim w As Double
Dim r As Range
w = TimeSerial(0, 0, Range("A1"))
Application.ScreenUpdating = False
With Worksheets(1)
For i = 1 To .Cells(Rows.Count, 4).End(xlUp).Row
If .Cells(i, 4) 

Gruß
Rudi
Anzeige
AW: falscher Datentyp
16.02.2017 14:41:36
Georg
Alles besten, vielen Dank Rudi!!

32 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige