Office: VBA Was sind Schleifen?

Helfe beim Thema VBA Was sind Schleifen? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Zusammen, ich bin ein Laie des VBAs. Da ich noch am Lernen bin, möchte ich gerne wissen, was Schleifen sind. Hierzu habe ich 3 Fragen. Für eine... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Sobriquet, 7. Mai 2012.

  1. VBA Was sind Schleifen?


    Hallo Zusammen,

    ich bin ein Laie des VBAs.
    Da ich noch am Lernen bin, möchte ich gerne wissen, was Schleifen sind.
    Hierzu habe ich 3 Fragen.
    Für eine leicht verständliche Erklärung mit leichtnachvollziehbaren Beispielen für einen Anfänger ohne jegliche Vorkenntnisse wäre ich sehr dankbar.

    Es gibt in VBA 3 Schleifenvarianten, zwei "klassische" und eine "objektorientiert". Diese sind:

    1. Zählschleifen (Diese verstehe ich einigermaßen)
    2. Prüfschleifen (Die sind mir kompliziert)
    3. Objektorientierte Schleife (Auch nicht verstanden)


    - Frage 1: Was sind:

    Zählergesteuerte Schleifen
    Schleifen mit nachgestellter Bedingungsprüfung
    Schleifen mit vorangestellter Bedingungsprüfung
    Endlosschleifen mit oder ohne Ausstiegsmöglichkeit


    - Frage 2: Was hiervon gehört wozu und was wäre ein leichtnachvollziehbarer Beispiel hierfür:

    While ... Wend-Schleife
    (Beispiel: )
    Do ... Loop-Schleife
    (Beispiel: )
    Do ... While-Schleife
    (Beispiel: )
    Do-Until-Schleife
    (Beispiel: )
    Do-Loop-Until-Schleife
    (Beispiel: )

    Falls es weitere Schleifen gibt, wäre ich für die Ergänzung sehr dankbar!

    - Frage 3: Und was sind eigentlich DoEvents?

    Schöne Grüße,
    Sobriquet

    :)
     
    Sobriquet, 7. Mai 2012
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    For Next wäre eigentlioch die klassische schleife.
     
    Hajo_Zi, 9. Mai 2012
    #2
  3. CitizenX, 9. Mai 2012
    #3
  4. VBA Was sind Schleifen?

    Hatte ich mir schon durchgelesen. Dort habe ich auch die For-Next-Schleife verstanden. Jedoch fehlt mir so ein gesamter Überblick.
    Es wäre sehr nett, wenn ihr auf meine Fragen eingehen würdet, die mich beschäftigen.
     
    Zuletzt von einem Moderator bearbeitet: 12. Januar 2021
    Sobriquet, 9. Mai 2012
    #4
  5. chris-kaiser, 9. Mai 2012
    #5
  6. ... da hat aber jemand seine Hausaufgaben gut verstreut ... siehe Clever-Forum
     
    mücke, 10. Mai 2012
    #6
  7. Hallo S.,

    da Du offenbar die bisher erhaltenen Antworten (und Links - auch im Clever-Forum) nicht verstanden hast, und dich als "VBA-Laien" bezeichnest, möcht ich Dir hier eine (nicht ganz EXCEL-konforme) laienhafte Antwort geben.

    Stell Dir vor, Du bist Direktor einer Schule und möchtest in den Sommerferien (auch wenn es bis dahin noch etwas dauert) die Schulräume mit neuen Stühlen ausstatten (Ein Hoch auf die Finanzplanung der Kommune, die das heute noch kann ;-)

    Du kannst nun zwischen folgenden Methoden entscheiden, wieviele Stühle in jedes Schulzimmer gestellt werden :

    1.) Du legst fest, dass jedes Zimmer 25 Stühle bekommt, die mit 1 bis 25 durchnummeriert werden.
    In Excel entspricht das einer For Zaehler=1 to 25 ...NEXT Zähl-Schleife

    2.) Du lässt in jedes Zimmer so viele Stühle hineinstellen, bis das Zimmer voll ist - egal ob es sich um ein 15qm kleines Zimmer oder um eine 1000qm grosse Turnhalle handelt. Die Anzahl der Stühle ist vorher also nicht bekannt - das Ende ist erst dann erreicht, wenn eine Bedingung ("das Zimmer ist voll") eingetreten ist.
    In Excel wäre das vergleichbar mit einer Prüfschleife, wobei hier noch unterschieden wird, ob erst ein Stuhl in das Zimmer gestellt wird und dann geprüft wird, ob das Zimmer voll ist (das wäre also eine nachgelagerte Prüfung wie z.B. in einer DO...LOOP UNTIL Schleife), oder ob zuerst geprüft wird, ob das Zimmer voll ist und dann erst entschieden wird, ob überhaupt noch ein (weiterer) Stuhl hineinpasst, das wäre eine vorgelagerte Prüfung (wie in VBA die WHILE...WEND Schleife).
    Kleiner Unterschied zwischen den Stühlen und den VBA-Schleifen : Bei den Stühlen ist absehbar, dass selbst das allergrösste Zimmer irgendwann "voll" ist und die Bestuhlung irgendwann endet - bei einer Schleife muss das nicht sein, sie kann theoretisch "unendlich lange" laufen.

    3.) Du entscheidest, dass in jedes Zimmer soviele Stühle gestellt werden, wie Schüler+Lehrer in diesem Zimmer sitzen werden. Falls das in den Sommerferien nicht vorhersehbar ist, wieviele das sein werden, kannst Du auch veranlassen, dass jeder Schüler+Lehrer am ersten Schultag sich seinen persönlichen Stuhl abholt. Das können für ein Zimmer vielleicht 30 Stühle sein, für ein anderes Zimmer evtl. nur 15 Stühle.
    Das entspricht in Excel einer "objektorientierten" FOR EACH...IN .NEXT Schleife. Das "For each" kann man fast wörtlich mit "für jeden" übersetzen (als z.B. "Für jeden Schüler IN der Klasse gibt es genau 1 Stuhl"

    Kleine Excel-Beispiele :

    1.) Zählschleife
    'In jede Zelle zw. A1 bis A10 wird ein "X" eingetragen :
    Code:
    2.) Prüfschleife mit vorgelagerter Bedingung :
    'Es werden solange "X" in eine Zelle der Spalte B eingetragen, solange die Zeilennr. kleiner als 11 ist (also nur bis max. Zeile 10)
    Code:
    3.) Objektorientierte Schleife :
    'Es wird in jede einzelne Zelle des Bereiches C1:C10 ein "X" eingetragen :
    Code:
    Vielleicht war diese laienhafte Erläuterung etwas verständlicher ?!?!?
     
    NoNet, 10. Mai 2012
    #7
Thema:

VBA Was sind Schleifen?

Die Seite wird geladen...
  1. VBA Was sind Schleifen? - Similar Threads - VBA Schleifen

  2. VBA Schleife kopieren und einfügen von Spalten

    in Microsoft Excel Hilfe
    VBA Schleife kopieren und einfügen von Spalten: Hallo Zusammen, Ich habe auf einem Tabellenblatt eine variable Anzahl an Spalten mit Daten die auch eine variable Anzahl an Zeilen haben, auch mit Lücken in den Zeilen. Die Spalten mit den Infos...
  3. Eine Schleife mit zwei tebellen vba Access

    in Microsoft Access Hilfe
    Eine Schleife mit zwei tebellen vba Access: Hallo zusammen! Es gibt’s zwei Tabellen und ich wollte aus zweiter Tabelle die Daten nach einem Kriterium (FLTR=0) an erste Tabelle übertragen (kopieren). Geht aber nicht. Hier ist mein Kode,...
  4. VBA Loop : Werte suchen und löschen

    in Microsoft Excel Hilfe
    VBA Loop : Werte suchen und löschen: Hallo zusammen, ich habe folgende Ausgangslage: Im Tabellenblatt Auswahl sollen Artikel eingegeben werden und via Formel wird der zugehörige Lagerplatz ausgegeben (funktioniert soweit), sodass...
  5. VBA: Variable Anzahl Zeilen mit Suchkriterien finden und kopieren

    in Microsoft Excel Hilfe
    VBA: Variable Anzahl Zeilen mit Suchkriterien finden und kopieren: Hallo zusammen, ich konnte bislang nur bruchstückhafte Ansätze zu meinem Problem finden, jedoch keinen um mehrere Kriterien zu erfassen und anschließend zu ordnen, daher brauche ich (mal wieder)...
  6. VBA: Datum automatisch hinzufügen nach Übertrag

    in Microsoft Excel Hilfe
    VBA: Datum automatisch hinzufügen nach Übertrag: Hallo zusammen, ich habe ein Makro gebaut, welches die Daten aus dem Tabellenblatt Bestellformular kopiert und diese in ein anderes Tabellenblatt (Bestellhistorie) überträgt, wobei zusätzlich in...
  7. Excel VBA Exit aus der Schleife verhindern

    in Microsoft Excel Hilfe
    Excel VBA Exit aus der Schleife verhindern: Hallo, ich denke, ich habe ein tatsächlich einfaches Problem. Komme aber nicht auf die Lösung. In dieser Schleife x bis 507 wird eine Funktion aufgerufen, die in einer anderen Liste einen Namen...
  8. Userform Schleife

    in Microsoft Excel Hilfe
    Userform Schleife: Hallo, ich erstelle über userform eine schöne Oberfläche wo ich verschiedene Sachen abfrage. Das funktioniert auch alles, aber mein Problem jetzt ist, dass ich die Werte in einen bestimmten Excel...
  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