Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
540to544
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
540to544
540to544
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Adiddion von Schleifen in einem Makro

Adiddion von Schleifen in einem Makro
04.01.2005 17:44:24
Schleifen
Ahoi Helferlein,
ich habe wiedermal ein Problemchen. Wie kann ich in einem Makro zwei Schleifen durchlaufen lassen und die Ergebnisse der Schleifen in einer Summe zusammenfassen?
Danke im Voraus.
Jan

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Adiddion von Schleifen in einem Makro
Schleifen
Hi Jan,
was soll denn in den Schleifen genau geschehen?
Gruß
Reinhard
AW: Adiddion von Schleifen in einem Makro
04.01.2005 18:13:24
Schleifen
Hi Reinhard,
eine Schleife soll Nettoraumflächen zur Gesamtnettoraumfläche addieren. Die andere Schleife soll Konstruktionsflächen zur Gesamtkonstruktionsfläche addieren. Am Ende soll das Makro die Gesamtkonstruktionsfläche und die Gesamtnettoraumfläche zur Bruttoraumfläche addieren.
Danke sagt Jan
AW: Adiddion von Schleifen in einem Makro
Schleifen
Hi Jan,

Sub jan()
For n = 1 To 10
Fläche1 = Fläche1 + 56
Next n
For n = 1 To 5
Fläche2 = Fläche2 + 111
Next n
Fläche3 = Fläche1 + Fläche2
MsgBox Fläche3
End Sub

Gruß
Reinhard
Anzeige
AW: Adiddion von Schleifen in einem Makro
04.01.2005 18:48:49
Schleifen
Hi Reinhard,
das Makro streikt in den Zeilen Next x.Vielleicht findest Du ja den Fehler
Gruß Jan

Sub BGF()
Worksheets("Daten").Select
'öffnet das Tabellenblatt "Daten"
a = 5
'Anfang der Schleife in Zeile 5
Ergebnis1 = 0
'dem Ergebnis1 wird der Wert 0 zugewiesen
Do
'Beginn Do Loop Schleife1
x = Cells(a, 16).Value
'der Variable x Wird der Wert der Zelle zugewiesen
Ergebnis1 = Ergebnis1 + x
'dem Ergebnis1 wird jetzt der Wert der Variable x hinzugerechnet
a = a + 1
'gehe eine Zeile tiefer
If a > 270 Then Exit Do
'wenn a > 270 dann beende die Do Loop Schleife
Loop
Ergebnis1 = Ergebnis1 + 1
'das Ergebnis1 hat jetzt einen neuen Wert
Next x
'nächste Variable x
Worksheets("Daten").Select
'öffnet das Tabellenblatt "Daten"
a = 5
'Anfang der Schleife 2 in Zeile 5
Ergebnis2 = 0
' dem Ergebnis2 wird der Wert 0 zugewiesen
Do
'Beginn der Do Loop Schleife2
x = Cells(a, 10)
' der Variablen wird der Wert der Zelle zugewiesen
Ergebnis2 = Ergebnis2 + x
'dem Ergebnis2 wird der Wert der Variablen x hinzugerechnet
a = a + 1
'gehe eine Zeile tiefer
If a > 270 Then Exit Do
'wenn a > 270 dann beende die Do Loop Schleife
Loop
Ergebnis2 = Ergebnis2 + 1
'das Ergebnis2 hat jetzt einen neuen Wert
Next x
'nächste Variable x
Ergebnis3 = Ergebnis1 + Ergebnis2
Sheets("Makros").Cells(6, 6).Value = Ergebnis3
'zuweisen der Ergebniszelle
Worksheets("Makros").Select
'öffnet das Tabellenblatt "Makros"
End Sub

Anzeige
AW: Adiddion von Schleifen in einem Makro
Schleifen
Hallo Jan,
du brauchst keine zwei Schleifen, und wenn schon klar ist, dass von Zeile 5 bis 270 addiert werden soll geht es mit For-Next einfacher:

Sub BGF()
Dim a As Long
Dim Ergebnis1 As Double, Ergebnis2 As Double, Ergebnis3 As Double
Ergebnis1 = 0
Ergebnis2 = 0
'Ergebnisse werden auf 0 gesetzt
With Worksheets("Daten")
'statt Blätter zu selecten besser auf sie referenzieren
For a = 5 To 270
'Schleife von 5 bis 270
Ergebnis1 = Ergebnis1 + .Cells(a, 16)
Ergebnis2 = Ergebnis2 + .Cells(a, 10)
'den Ergebnisen wird jeweils der nächste Zellwert hinzugerechnet
Next
End With
Ergebnis1 = Ergebnis1 + 1
Ergebnis2 = Ergebnis2 + 1
'das Ergebnis2 hat jetzt einen neuen Wert
Ergebnis3 = Ergebnis1 + Ergebnis2
Sheets("Makros").Cells(6, 6).Value = Ergebnis3
'zuweisen der Ergebniszelle
Worksheets("Makros").Select
'öffnet das Tabellenblatt "Makros"
End Sub

Gruß
Peter
Anzeige
AW: Adiddion von Schleifen in einem Makro
Schleifen
Hallo Jan,
jetzt sehe ich gerade, dass du eine Gesamtsumme haben willst, dann kannst du doch sofort aufaddieren und auf Ergebnis2 und Ergebnis3 verzichten. Nicht ganz klar ist mir:
Ergebnis1 = Ergebnis1 + 1
Ergebnis2 = Ergebnis2 + 1
Wenn der Wert um jeweils 1 höher sein soll als die Addition dann kannst du am Anfang des Codes schreiben
Ergebnis = 2

Sub BGF()
Dim a As Long
Dim Ergebnis As Double
Ergebnis = 0
'Ergebnis wird auf 0 gesetzt
With Worksheets("Daten")
'statt Blätter zu selecten besser auf sie referenzieren
For a = 5 To 270
'Schleife von 5 bis 270
Ergebnis = Ergebnis + .Cells(a, 16)
Ergebnis = Ergebnis + .Cells(a, 10)
'den Ergebnisen wird jeweils der nächste Zellwert hinzugerechnet
Next
End With
Sheets("Makros").Cells(6, 6).Value = Ergebnis
'zuweisen der Ergebniszelle
Worksheets("Makros").Select
'öffnet das Tabellenblatt "Makros"
End Sub

Gruß
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige