Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

For-Schleife zählt nur bis 4230

For-Schleife zählt nur bis 4230
27.09.2006 17:54:22
00011011
Ich habe folgendes Problem:
Ich habe eine Tabelle, in welcher in Spalte A mehrere tausend Werte stehen. Nun habe ich folgende Schleife mit Hilfe eines netten Users dieses Forums in meine Tabelle eingebaut, welche aber nicht weiter als Zeile 4.230 läuft, unabhängig von der Anzahl der Werte in Spalte A (sowhl bei 5.000 als auch bei 10.000 Werten ist bei 4.230 Schluß). Dabei bricht das Programm nicht ab, sondern macht nach der For-Schleife einfach weiter, als wenn die Schleife bis zum Schluß gelaufen wäre. Ist dies ein allgemeines Problem oder stimmt bei mir was nicht.
For Zaehler = 2 To Cells(Rows.Count, 1).End(xlUp).Row
..ausführender Code
Next Zaehler
Anmerkung: Zaehler = Integer
Vielen Dank für Eure Hilfe.
Gruß aus Köln
Christian

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For-Schleife zählt nur bis 4230
27.09.2006 18:26:39
Ali
Hi,
zunächst mal sollten Variable für Zeilen immer As Long derklariert sein, aber daran liegt es hier nicht.
Was geschieht den bei "..ausführender Code"
mdf Ali
AW: For-Schleife zählt nur bis 4230
27.09.2006 18:44:18
00011011
Erstmal danke für den Tipp mit Long. Bei "...ausführender Code" geschieht eigentlich nichts wildes. Es wird nach gewissen Zeiten gesucht, graue Zeilen an dieser Stelle eingefügt und anschließend für ein vorgegebenes Intervall die Anzahl an Zelleninhalten "positiv" gezählt.
Hier der Inhalt innerhalb der For-Schleife:
If Cells(Zaehler, 1).Value &gt= Start + TimeSerial(0, Intervall, -1) Then
Rows(Zaehler).Select
Selection.Insert Shift:=xlDown
Rows(Zaehler).Interior.ColorIndex = 15
Rows(Zaehler).Interior.Pattern = xlSolid
For Zaehler2 = ZaehlerAlt + 1 To Zaehler + 1
If Cells(Zaehler2, 2).Value = "positiv" Then AnzahlPositiv = AnzahlPositiv + 1
Next Zaehler2
AnzahlNegativ = Zaehler - ZaehlerAlt - AnzahlPositiv
Cells(Zaehler, 2).Value = AnzahlPositiv
Cells(Zaehler, 3).Value = AnzahlNegativ
AnzahlPositiv = 0
AnzahlNegativ = 0
ZaehlerAlt = Zaehler + 1
Start = Start + TimeSerial(0, Intervall, 0)
Periode = Periode + 1
End If
Vielen Dank für Deine Mühen
Gruß
Christian
Anzeige
AW: For-Schleife zählt nur bis 4230
27.09.2006 19:06:47
Stefan
Hallo Christian,
Dein Code sieht fuer mich so aus:
Du hast einen Zellbereich, sagen wir von Zeile 1 bis Zeile 100, in dem deine Werte stehen.
Dann geht Dein Code durch diesen Zellbereich, und jedesmal wenn eine bestimmte Bedingung eintritt, fuegt er eine neue Zeile ein. Dadurch wird aus Zeile 100 die Zeile 101. Beim naechsten mal 102, usw. Aber Deine Schleife wird nur bis 100 gehen! Damit wirst Du, wenn du jetzt 20 Zeilen neu einfuegst, die letzten 20 Zeilen nicht ueberpruefen lassen, da die aus deinem Bereich rausfallen. Dass Du aber bei original 10000 Zeilen nur bis 4230 kommst, ist eigenartig, denn du solltest dabei zumindest bis 5000 kommen...
Schoene Gruesse
Stefan
Anzeige
AW: For-Schleife zählt nur bis 4230
27.09.2006 19:29:08
00011011
Hallo Stefan,
das könnte die Lösung sein. Daran habe ich nicht gedacht, dass sich die unteren Datensätze außerhalb der ursprünglichen For-Bedingung befinden könnten.
Tatsächlich könnte hier ein größerer Zufall vorliegen, da ich in meinen Testläufen mit den unterschiedlichen Längen jeweils unterschiedliche Bedingungen angewendet hab.
Die einzige Frage, die mir jetzt unklar ist... ist es möglich, die For-Schleife dynamisch irgendwie anzupassen?
Vielen Dank für den Hinweis!
Gruß
Chritian
AW: For-Schleife zählt nur bis 4230
27.09.2006 19:37:09
Stefan
Da wuerden mir auf anhieb zwei Moeglichkeiten einfallen:
1. Keine For-Next-Schleife einzusetzen, sondern in der Spalte A solange nach unten zu gehen bis man auf eine leere Spalte stoesst (mit For each ...)
2. Eine neue Variable einzusetzen (z.B. "Adder"), die mit jeder neu eingefuegten Zeile um eins hochgezaehlt wird, und bei jedem Aufruf einer Zeile im Code "Zaehler" mit "Zaehler+Adder" zu ersetzen. Ich hoffe das war verstaendlich...
Schoene Gruesse
Stefan
Anzeige
AW: For-Schleife zählt nur bis 4230
27.09.2006 19:38:34
00011011
Jo war verständlich. Werds mal umsetzen.
Vielen Dank
Christian
Funktioniert einwandfrei! »DANKE« o.T.
27.09.2006 19:52:18
00011011
Vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige