Office: For-Schleife extrem langsam.

Helfe beim Thema For-Schleife extrem langsam. in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, Ist es normal dass eine Schleife, die Zeilen bei einem bestimmten Kriterium löscht, sehr langsam abläuft? Wenn jedoch keine Zeile gelöscht... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von danane, 14. März 2006.

  1. For-Schleife extrem langsam.


    Hallo,
    Ist es normal dass eine Schleife, die Zeilen bei einem bestimmten Kriterium löscht, sehr langsam abläuft?

    Wenn jedoch keine Zeile gelöscht werden muss, sondern nur zum Beispiel farbig markiert wird, läuft sie bei mir immer sehr schnell ab.

    Hier mein Code.

    For i = LetzteReihe To ErsteReihe Step -1
    If Cells(i, "A").Value

    :)
     
    danane, 14. März 2006
    #1
  2. ich würde mal schätzen, dass das Problem nicht die SChleife an sich sondern das Löschen der Zellen ist, was so lange dauert. Ist zumindest bei mir so.
    In irgendeinem anderen Beitrag stand mal, dass es wohl auch ein grafisches Problem ist, und man es mit ScreenUpdating = False; schleife; ScreenUpdating ? True schneller kriegen könnte.
    Ansonsten köntest du über einen Array (long) alle Zeilen speichern und die dann am Ende komplett auf einmal löschen. Das dürfte m.E. auch schneller sein.
     
  3. Hallo danane,

    neben dem Hinweis von sonba (Screenupdating) könnte es auch an durchzuführenden Berechnungen liegen. Du kannst vor Beginn der Prozedur die Berechnung auf manuell und danach wieder auf automatisch setzen (dann wird nur ein Mal neu berechnet). Wenn Du einen größeren Teil (oder gar alles) des Codes einstellst, kann Genaueres gesagt werden.

    cu
    myfake
     
    myfake, 15. März 2006
    #3
  4. For-Schleife extrem langsam.

    Moin, moin,

    habe gestern auch eine Prozedur gehabt, bei dem ich das brauchte. Habe es folgendermaßen gemacht:

    Range("a1").Select

    allez = ActiveSheet.UsedRange.Rows.Count

    For i = 1 To allez
    If ActiveCell.Value
     
    Demian, 15. März 2006
    #4
  5. Danke euch für die flotten Antworten. Ich werde mal das mit screenupdating = false ausprobieren und eine Rückmeldung geben.
    @myfake: Wie setze ich die Berechnung auf manuell bez. auf automatisch? Wie meinst du das?
     
    danane, 15. März 2006
    #5
  6. Hallo danane,

    ich benutze gerne diesen "Rahmen":
    Code:
     
    myfake, 15. März 2006
    #6
  7. Hallo Danane,

    eine Alternative wäre der Autofilter:

    Option Explicit

    Sub ZeilenLoeschen()
    Range("A1").AutoFilter Field:=1, Criteria1:="<=3"
    If Range("A" & Rows.Count).End(xlUp) > 1 Then
    Range("2:" & Range("A1").CurrentRegion.Rows.Count).EntireRow.Delete
    End If
    Range("A1").AutoFilter
    End Sub
     
    Uwe Küstner, 15. März 2006
    #7
  8. For-Schleife extrem langsam.

    Hallo danane,

    oder lösche zusätzlioch noch alle Zeilen mit einmal.
    Code:
     
  9. Hey ihr seid super genial.
    Ich hab das Automatische Aktualisieren auf False gesetzt und die Ausführung ging deutlich schneller (vorher 4 min mit über 5000 Datensätzen, jetzt etwa 20 Sekunden).

    Ich werde mal noch das mit dem Abspeichern in ein Array ausprobieren. Vielleicht gibts nochmals einen Geschwindigkeitssteigerung.

    Nochmals danke!! *Smilie
    lg Danane
     
    danane, 16. März 2006
    #9
  10. Hallo Danane,

    leider habe ich mir schon die Mühe gemacht zu Antworten. Es ist mir erst jetzt aufgefallen:

    mir scheint Du hast die als wichtig gekennzeichneten Beiträge nicht gelesen. Das solltest Du bei Deinen nächsten Post beachten.

    Das Du kopieren und Einfügen kannst brauchts Du uns nicht beweisen. Wir gehen davon aus, das der der am Computer sitzt dies kann.
    Mit dem doppelten Posting in den Foren ist das so ein Problem, wird der Beitrag in mehreren Foren gleichzeitig gepostet arbeiten mehrere Helfer gleichzeitig an der Lösung. Sollten nun mehrer Helfer sich mit der Beantwortung und Lösungssuche befassen arbeitet nur einer an der endgültigen Lösung und die anderen für den Papierkorb. Bei Helfern kostet es Zeit und es machen alle diese Arbeit kostenlos. Und ich sehe es als nicht Achtung der Arbeit der Helfer an, wenn die Frage gleichzeitig in mehreren Foren gestellt wird. Sinn und Zweck des Forums ist es aber ein geben und nehmen. Wenn in einem gewissen Abstand nicht Minuten in anderen Foren gepostet wird hat keiner was dagegen.
    Dies ist nur meine Meinung zu dem Problem und mit diesen Beiträgen befasse ich mich nicht. Da löse ich lieber andere Probleme.
    Es braucht mir auch keiner schreiben er kauft sich auch mehrere Bücher oder läst sich mehrere Angebote machen. Da übersieht er nur einen Entscheidenden Punkt. Der Autor hat sein Geld schon bekommen und die Preise für die Angebote werden schon so geplant das bei einem Verhältnis von 1 zu 10 noch Gewinn rauskommt. Hier in dem Forum beantworten alle Antworten die Fragen ohne Bezahlung und bei dieser Arbeitsweise arbeitet keiner gerne für den Papierkorb, ich jedenfalls nicht.
     
Thema:

For-Schleife extrem langsam.

Die Seite wird geladen...
  1. For-Schleife extrem langsam. - Similar Threads - For Schleife extrem

  2. For Next Schleife

    in Microsoft Excel Hilfe
    For Next Schleife: Hallo zusammen, da bin ich wieder und wie kann es anders sein mit einem Problem. Ich habe eine Tabelle (im Anhang) dort soll die Werte in Zellen a/b/f kopiert werden und in die erste frei Zeile...
  3. Access For next Schleife

    in Microsoft Access Hilfe
    Access For next Schleife: Ich habe in einer Tabelle meine Spieler mit einer Spielernummer enthalten. Jeder Spieler hat als Bericht ein "Stammblatt", welches mit der Spielernummer aufgerufen wird. Ich möchte jetzt gerne...
  4. For Each Schleife Anstatt ActiveSheet festen Tabellenblattnamen benutzen

    in Microsoft Excel Hilfe
    For Each Schleife Anstatt ActiveSheet festen Tabellenblattnamen benutzen: Hallo , habe folgende Schleife geschrieben : Dim rngBereich As Range Dim rngZelle As Range Sub Test() Set rngBereich = ActiveSheet.Range(ActiveSheet.Cells(1, 1), _...
  5. For-Next-Schleife für Textfeldübertragung

    in Microsoft Access Hilfe
    For-Next-Schleife für Textfeldübertragung: Hallo zusammen, ich habe 20 Textfelder (txt1 bis txt20) und muss die in 20 andere Textfelder (txt1S bis txt20S) übertragen. Nun habe ich mir gedacht, dass ich das mit einer For-Next-Zähler machen...
  6. For Schleife nicht initialisiert

    in Microsoft Access Hilfe
    For Schleife nicht initialisiert: Hi, bräuchte dringend Hilfe. Ich sende per folgenden Befehl Emails raus.(per cdo) Blos jetzt auf einmal bringt er mir den Laufzeitfehler 92 mit For Schleife nicht initalisiert. Code: Option...
  7. Glücksrad mit VBA und For-Schleifen

    in Microsoft Excel Hilfe
    Glücksrad mit VBA und For-Schleifen: Hallo zusammen! Da ich hier immer Hilfe finde wende ich mich mal wieder mit folgendem Problem an euch: Ich möchte in Excel etwas auslosen. Das ansich ist auch kein Problem. Damit es etwas...
  8. "find and replace" mit "for-Schleife" kombinieren

    in Microsoft Word Hilfe
    "find and replace" mit "for-Schleife" kombinieren: Guten Tag miteinander, Ich bin grade dabei ein kleines Programm zu erstellen, dass alphabetisch durchgearbeitet wird und jedesmal eine Ersetzung durchführt. Hier ist der Code: Sub...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden