Clever-Excel-Forum

Normale Version: Makro mit while
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
(19.08.2022, 14:02)Ralf A schrieb: [ -> ]..unabhängig davon gibt es (offiziell) keine while Schleife (mehr). Ist noch eine Relikt alter Tage.

Hast Du offizielle Quellen für Deine Behauptung?

While...Wend-Anweisung

Gruß Uwe
@Kuw

Wenn du F1 benützst, hast du diese offizielle Mitteilung: sehe zwischen den roten Sternen.

Excel 2010 Developer Reference > Visual Basic for Applications Language Reference > Visual Basic Language Reference > Statements

While...Wend Statement
[img]blueup_CLV.gif[/img]Show All[/url]
[img]bluedrop_CLV.gif[/img]Hide All[/url]
Executes a series of statements as long as a given condition is True.
Syntax
While condition
[statements]
Wend
The While...Wend statement syntax has these parts:
Part
Description
condition
Required. Numeric expression or string expression that evaluates to True or False. If condition is Null, condition is treated as False.
statements
Optional. One or more statements executed while condition is True.
Remarks
If condition is True, all statements are executed until the Wend statement is encountered. Control then returns to the While statement and condition is again checked. If condition is still True, the process is repeated. If it is not True, execution resumes with the statement following the Wend statement.
While...Wend loops can be nested to any level. Each Wend matches the most recent While.

***************
[img]ms-help://MS.EXCEL.DEV.14.1033/EXCEL.DEV/content/bluedrop_CLV.gif[/img]Tip
The Do...Loop statement provides a more structured and flexible way to perform looping.

***************

Example
This example uses the While...Wend statement to increment a counter variable. The statements in the loop are executed as long as the condition evaluates to True.
Code:
Dim Counter
Counter = 0    ' Initialize variable.
While Counter < 20    ' Test value of Counter.
    Counter = Counter + 1    ' Increment Counter.
Wend    ' End While loop when Counter > 19.
Debug.Print Counter    ' Prints 20 in the Immediate window.
ofm
© 2010 Microsoft Corporation. All rights reserved.
Hallo snb,

Mit F1 kam ich auf die von mir verlinkte Seite, die ja inhaltlich Deiner gefundenen entspricht.
Ich sehe da keinen Hinweis, dass es das offiziell nicht mehr gibt.
Den Hinweis auf eine strukturiertere und flexiblere Möglichkeit mit Do...Loop gab es schon in Excel97.

Auf jeden Fall war das m.M.n. gar nicht das Thema, ob nun mit While...Wend oder Do...Loop gearbeitet wird.

Gruß Uwe
@Kuwer,


Zitat:Hast Du offizielle Quellen für Deine Behauptung?


..ok... falsch ausgedrückt. Natürlich kann man sie aus Gründen der Abwärtskompatibilität noch verwenden, wird aber seit ca. 20 Jahren nicht mehr empfohlen. Deshalb empfehle ich niemandem, sich mit alten Hüten zu beschäftigen... auch wenn man sie noch tragen kann...  78

 (vielleicht zum Karneval?)
@Kuw

Dream on.
Danke. Es hilft mir auch bei der Darstellung weiter.
Hallo,

wir haben uns missverstanden.

Ich soll verschiedene Werte in Blatt "Eingabe" eingeben. Nun sollen dann alle Fällen im Blatt "Übersicht" aufgelistet werden. Nun wird es bei mir jedes mal überschrieben.

Sub test()

' Dim i As Integer

Sheets("Eingabe").Range("_TeilbestandObergrenze").Copy
Sheets("Übersicht").Range("A5").PasteSpecial xlPasteValues

Sheets("Eingabe").Range("_KollektivObergrenze").Copy
Sheets("Übersicht").Range("B5").PasteSpecial xlPasteValues

Sheets("Berechnung").Range("R38").Copy
Sheets("Übersicht").Range("D5").PasteSpecial xlPasteValues

Sheets("Berechnung").Range("_ABnachKollektiv").Copy
Sheets("Übersicht").Range("E5").PasteSpecial xlPasteValues

End Sub

Mit .insert geht es aber auch mit einer Schleife?

Danke für Ihre Hilfe, Gruß
Du solltest Code Tags verwenden.
(23.08.2022, 08:33)Kevin Fragesteller schrieb: [ -> ]Hallo,

wir haben uns missverstanden.

Ich soll verschiedene Werte in Blatt "Eingabe" eingeben. Nun sollen dann alle Fällen im Blatt "Übersicht" aufgelistet werden. Nun wird es bei mir jedes mal überschrieben.

Was heißt "verschiedene Werte"? Soll das heißen "mehrere, unterschiedliche untereinander"? Oder wie? Suchst Du nach einem Filter?
Ich habe keine Ahnung was Du wirklich willst...
Hallöchen,

Du hast die Einfügezellen fest programmiert. Wenn Du eine Liste führen willst, und das auch "ordentlich", also dann untereinander, müsstest Du vor der Übertragung die letzte beschriebene Zelle feststellen und die darauf folgende freie Zeilennummer verwenden.

Im Prinzip etwas in der Art

Code:
lRow=Cells(Rows.Count,1).End(xlUp).Row 'letzte beschriebene Zelle in Spalte A ermitteln
With Sheets("Übersicht").Cells(lrow,1) 'Mit der gefundenen Zeile, Spalte A
  Sheets("Eingabe").Range("_TeilbestandObergrenze").Copy
  .Offset(1,0).PasteSpecial xlPasteValues 'eine Zeile tiefer als lrow, Spalte A
  Sheets("Eingabe").Range("_KollektivObergrenze").Copy
  .Offset(1,1).PasteSpecial xlPasteValues 'eine Zeile tiefer als lrow, Spalte B
  '...
End With
Seiten: 1 2