Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit DTPicker in For Each Schleife

Problem mit DTPicker in For Each Schleife
18.03.2008 14:46:00
Nici
Hallo,
ich habe ein Problem mit folgender For Each Schleife:
Worksheets("Tabelle1").Activate
Dim Zelle As Range
Dim Bereich As Range
Set Bereich = Sheets("Tabelle1").Range("E2:E100")
For Each Zelle In Bereich
If Zelle.Value Zelle.EntireRow.Delete
End If
Next
Die gleiche Schleife benutze ich für einen 2ten DTPicker.
If Zelle.Value > DTPicker2.Value Then
Zelle.EntireRow.Delete
Ich möchte mit Hilfe der beiden DTPicker einen datumsabhängigen Kontoverlauf anzeigen lassen, und somit alle Zeilen die ausserhalb des gewählten Bereichs liegen (von bzw. bis) rauslöschen.
Könnte das irgendwie mit dem Value des DTPicker im Eigenschaftenfenster zu tun haben? Da er mir dort das Erstellungsdatum des DTPicker angibt (11.03.). Wenn ich nämlich den DTPicker1 auf den 12.03. setze, so löscht er mir die Zeile mit dem 10.03. raus, so wie es auch sein soll, aber er löscht mir nicht die Zeile mit dem 11.03.
Ich wäre für Hilfe sehr dankbar.

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

Betreff
Datum
Anwender
Anzeige
AW: Problem mit DTPicker in For Each Schleife
18.03.2008 16:03:28
Horst
Hi,
Andere Schleife For x = 100 to 2 Step -1
mfg Horst

AW: Problem mit DTPicker in For Each Schleife
18.03.2008 16:03:57
fcs
Hallo Nici,
beim Löschen von Zeilen in Schleifen ist unter VBA ein wenig zu beachten.
Zeilen sollten von unten (hohe Zeilennummer) nach oben (niedrige Zeilennummer) gelöscht werden
Mit der "For Each Zelle in Bereich" Konstruktion gibt es Probleme, da sich die Zellen während der Schleife verschieben, so dass Zeilen übersprungen werden.
Stelle deine Schleife wie folgt um.
Gruß
Franz

Sub aactest()
Set bereich = Sheets("Tabelle1").Range("E2:E100")
For Zeile = bereich.Rows.Count To 1 Step -1
If bereich(Zeile, 1) 


Anzeige
AW: Problem mit DTPicker in For Each Schleife
18.03.2008 16:16:00
Ramses
Hallo Franz
Vorsicht, das klappt nicht so ohne weiteres, ... wie auch schon in deinem Beispiel
Set bereich = Sheets("Tabelle1").Range("E2:E100")
Der Bereich geht von Zeile 2, deine Zählroutine bis 1.
Bereich.Rows.Count passt hier zufällig. Wenn der Bereich aber z.B.
Set bereich = Sheets("Tabelle1").Range("E50:E100")
Definiert wird, dann läuft das Script ins leere
Wenn du da variabel und auf dem sicheren Weg sein willst, dann würde ich das so lösen
For Zeile = bereich.Offset(Bereich.Rows.Count - 1, 0).Row To Bereich.Cells(1, 1).Row Step -1
Damit beginnst du immer in der untersten Zeile des definierten Bereiches und du erhältst immer die 1. Zeile des definierten Bereiches und dein Schleife funktioniert unter allen Umständen.
Gruss Rainer

Anzeige
AW: Problem mit DTPicker in For Each Schleife
18.03.2008 16:29:07
fcs
Hallo Rainer,
mein makro funktioniert auch bei einem andern Bereich.
Bei mir werden die Zeilen des Bereichs abgearbeitet. Die "Korrektur/Anpassung" an die tatsächliche Zeilennummer in der Tabelle erfolgt in der Zeile

Sheets("Tabelle1").Rows(Zeile + bereich.Row - 1).Delete

statt im Zeilen-Zähler.
Es führen halt mehrere Wege nach Rom.
Gruß
Franz

AW: Problem mit DTPicker in For Each Schleife
18.03.2008 17:33:00
Nici
Hallo,
vielen Dank erstmal für eure Antworten.
Hallo fcs,
danke für deine umgestellte Schleife, sie funktioniert soweit auch ganz prima, nur gibt es noch ein kleines Problem.
In der Schleife wird nun auch die Zeile des ausgewählten Datums im DTPicker1 gelöscht (was schätze ich hier passiert: Sheets("Tabelle1").Rows(Zeile + bereich.Row - 1).Delete ), dies soll aber nicht der Fall sein. Die Zeilen des ausgewählten Datums soll nicht gelöscht werden, und bestehen bleiben.
Ich habe etwas rumprobiert, schaffe es aber leider nicht.
Könntest du oder ihr mir da bitte nochmal weiterhelfen.
Danke
Gruß,
Nici

Anzeige
AW: Problem mit DTPicker in For Each Schleife
19.03.2008 08:50:00
fcs
Hallo Nici,
ich hatte meine Lösung mit dem Datumswert einer Zelle getestet. Da funktioniert der Vergleich mit den Zellinhalten korrekt.
Ich weiss jetzt nicht, welchen Wert der DTPicker zurückgibt, was dann ggf. zu diesem Unterschied im Wertevergleich führt.
Gruß
Franz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige