Makro mit while
#11
(19.08.2022, 15: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
Antworten Top
#12
@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.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#13
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
Antworten Top
#14
@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?)
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#15
@Kuw

Dream on.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#16
Danke. Es hilft mir auch bei der Darstellung weiter.
Antworten Top
#17
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ß
Antworten Top
#18
Du solltest Code Tags verwenden.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#19
(23.08.2022, 09: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...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#20
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste