Zum Inhalt springen

Diskussion:VBA in Excel/ Schleifen

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Abschnitt hinzufügen
Aus Wikibooks
Letzter Kommentar: vor 6 Jahren von 194.174.76.21 in Abschnitt loop until / loop while

Definition von Schleifen fehlt

[Bearbeiten]

Jetzt hat jemand den Text geändert von "In einer xxx-Schleife..." nach "In dieser xxx-Schleife...". Das ist korrekt, denn die Erklärung bezieht sich nur auf das jeweilige Beispiel. Ich vermisse aber die eigentliche Definition, z.B. so etwas:

Die Do-While-Schleife wird so oft durchlaufen, bis die While-Bedingung erfüllt wird. Sie wird mindestens einmal durchlaufen.

Da ich kein VBA-Experte bin, möchte ich die Änderung nicht selbst vornehmen (auch wenn ich mir alles erklären kann). Ich hoffe aber, dass jemand diese Anregung zur Kenntnis nimmt und aufgreift.
-- Jürgen 09:18, 1. Apr. 2011 (CEST)Beantworten

Eigentlich müsste man die "Schleifen" und "Beispiele für Schleifen" zusammenlegen (inzw. verweisen beide Kapitel zumindest aufeinander und ich hab auch noch einen weiterführenden Link im "Beispiele"-Kapitel hinzugefügt). Wenn Du möchtest, kannst Du Deine Änderungen durchführen, ich werd im Anschluss drüber gucken.
--Albin 14:27, 11. Jul. 2011 (CEST)Beantworten
Ich bin mir unschlüssig, wie man verfahren soll. Das Inhaltsverzeichnis trennt zwischen den eigentlichen Grundlagen und den Programmierbeispielen. Das würde aber bedeuten, dass die Inhalte genau verkehrt herum stehen: Die vielen Stichpunkte, die es im jetzigen Kapitel "Beispiele" gibt, gehören eher in das andere Kapitel; die konkreten Verfahren aus dem Kapitel "Schleifen" gehören eher nach "Beispiele".
Wenn du mir zustimmst, tausche ich beide Kapitel aus (a wird x, b wird a, x wird b). Dann kann jedes Kapitel für sich sinnvoll überarbeitet wird. -- Jürgen 18:00, 11. Jul. 2011 (CEST)Beantworten
Ich würde nicht einfach nur "durchtauschen". Beide Artikel behandeln unterschiedliche Aspekte von Schleifen, daher gehören sie meiner Meinung nach nach wie vor gemerged. Aber selber wenn das bereits korrigiert wäre, ob die Trennung aus dem Inhaltsverzeichnis in dieser Form sinnvoll ist? Didaktisch ist es auf jeden Fall besser einen abstrakten Sachverhalt (Grundlagen) mit möglichst vielen Beispielen direkt zu veranschaulichen also zumindest im gleichen Kapitel. Welchen Vorteil die jetzige Trennung bringt kann ich ich nicht nachvollziehen, zunächst soll dies ja ein Lehrbuch sein und keine möglichst kompakte Referenz, oder hab ich hier etwas falsch verstanden?
Anstatt einem "schnellen Fix", warte doch lieber bis Du (oder ein Anderer) Zeit hat, die beiden Artikel tatsächlich "auseinanderzunehmen". --Albin 22:56, 11. Jul. 2011 (CEST)Beantworten
Damit keine Missverständnisse entstehen: Ich war zwar hauptsächlich Programmierer, aber nicht mit Excel oder VBA. Dieses Buch beobachte ich lediglich in meiner Funktion als Administrator und unter Berücksichtigung meiner minimalen Anwenderpraxis bei MS-Word. Die Unterteilung der verschiedenen Beispiele habe ich mir aus dem Inhaltsverzeichnis heraus so erklärt. Wenn man das durchhält, könnte es konsequenter erledigt werden. Man kann aber auch (wie du) einer anderen Meinung sein. Es hängt deshalb davon ab, welche Fachleute (!) sich mit dem Buch befassen und welche Grundsätze sie umsetzen wollen.
Ich kann meine Meinung und praktische Hilfe beisteuern, aber nicht die entscheidende inhaltliche Arbeit leisten. Was du (oder andere) sagen, kann ich machen. -- Jürgen 10:16, 12. Jul. 2011 (CEST)Beantworten

Fehlermeldung

[Bearbeiten]

Hallo, bei mir bricht das 'Do While' am Ende mit einer Fehlermeldung ab. Wie kann ich das verhindern? Mein Makro löscht alle Bezug! Fehler.

   Sub FehlerBezugLöschen()
       Do While Cells.Find(what:="REF").Activate
          Selection.ClearContents
       Loop
   End Sub
Vielleicht weil du versuchst, noch einmal eine Zelle zu aktivieren und deren Inhalt zu löschen, nachdem keine passende Zelle mehr gefunden wurde. Nichtgefundene Zellen können nicht aktiviert werden. Versuche, die Aktionen von der Bedingung zu trennen, ausserdem kannst du die Bedingung nach dem "until" setzen. "On error resume next" ist auch eine Möglichkeit. 194.174.76.21 17:01, 23. Apr. 2018 (CEST) Marco Pagliero BerlinBeantworten

loop until / loop while

[Bearbeiten]

In einer Do-While/Until-Schleife kann die Bedingung auch nach "loop" gesetzt werden, das ändert ein bisschen das Verhalten der Schleife. Ich finde, das müsste in einem solchen Artikel erwähnt werden. 194.174.76.21 17:06, 23. Apr. 2018 (CEST) Marco Pagliero BerlinBeantworten