(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...
(vielleicht zum Karneval?)
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