Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
144to148
144to148
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Endlosschlaufe

Endlosschlaufe
12.08.2002 15:42:42
Herbert Schaller
Hallo,

Ich habe ein Problem mit einer Endlosschlaufe, die die Länge (Kolonne A) mit der Breite (Kolonne B) multiplizieren soll, bis keine Werte mehr auf der Linie sind. Danach soll eine MessageBox ausgeben xxxx m2. Mein Programm funktionniert, jedoch überhaupt nicht professionnel, da ich es 99 mal abarbeiten lasse.
Kann mir jemand einen Tipp geben ?
Momentane Makro =
Zähler = 0
Tot = 0
Do While Zähler < 99
ActiveCell.FormulaR1C1 = "=RC[-2]*RC[-1]"
Tot = ActiveCell + Tot
Selection.ClearContents
ActiveCell.Offset(1, 0).Range("A1").Select
Zähler = Zähler + 1
Loop
Range("A1").Select
MsgBox "Die Fläche ist " & Tot & " m2."
End Sub

Vielen Dank

Herbert


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Endlosschlaufe
12.08.2002 15:55:39
Otto Ecker
Hallo Herbert,

hier ein Beispiel mit do until

Gruß Otto

Re: Ohne Endlosschlaufe
12.08.2002 15:59:47
JürgenR
Hi,

müsste auch so gehen:

Sub Herbert()
Dim i As Double
Dim k As Long
k = Cells(65336, 1).End(xlUp).Row
i = WorksheetFunction.SumProduct(Range(Cells(1, 1), Cells(k, 1)), Range(Cells(1, 2), Cells(k, 2)))
MsgBox i
End Sub

Gruß
Jürgen

Kann nicht gehen
12.08.2002 16:00:31
BCM
Hi Herbert,
Deine Schleife ist KEINE Endlosschleife. Aus sowas kann sich ein Programm von selbst nicht mehr befreien. Dein Ding läuft nur eben 99 mal durch, auch wenn nur 3 Datensätze da sind. Das ist zwar nicht schön, aber auch nicht falsch.
Trotzdem ein Ansatz, wies eleganter geht.

Sub flaeche()
i = 1
Tot = 0
Do While Cells(i, 1).Value <> "" And i < 65536
Tot = Tot + (Cells(i, 1).Value * Cells(i, 2).Value)
i = i + 1
Loop
MsgBox "Die Fläche ist " & Tot & " m2."
End Sub

cu
BCM

Anzeige
Re: Kann nicht gehen
12.08.2002 16:57:51
Herbert
Vielen Dank,

Es hat funktionniert

Herbert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige