Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Summe mit For-Schleife

Forumthread: Summe mit For-Schleife

Summe mit For-Schleife
28.08.2004 20:39:48
Viola
Hallo Experten,
sitze jetzt seit Stunden an einem Makro und krieg es einfach nicht hin. Ich habe viele Spalten nebeneinander (dynamisch generiert; Anzahl der Spalten verändert sich). In einem neuen Sheet möchte ich jetzt jeweils Zwischensummen für jede Spalte berechnen lassen. Exemplarisch für die erste Spalte im neuen Sheet:
Zelle 1: A1
Zelle 2: A1 + A2
Zelle 3: A1 + A2 + A3
usw...
Mein Code sieht folgendermaßen aus: (für 1. Spalte habe 2. For Schleife damit jede Spalte durchlaufen wird=
For r = 1 To Reihen - 1 Step 1

With CARs
.Cells(r + 6, s + 3).Select
ActiveCell.FormulaR1C1 = "=SUM(Range(Cells(1,1),Cells(r,1))"
End With
Next r
Ich habe alles definiert usw. Aber trotzdem meckert er bei "=Sum...".
Wie lautet der richtige Syntax???
Vielen lieben Dank
Viola
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Summe mit For-Schleife
28.08.2004 21:04:30
Piet
Ohne den Rest auf Stimmigkeit getestet zu haben, ist = "=SUM(Range(Cells(1,1),Cells(r,1))"
keine FormulaR1C1, einfach nur Formula
Piet
AW: Summe mit For-Schleife
28.08.2004 22:41:51
nighty
hi Viola :)
wie gewuenscht :)
gruss nighty
einzufuegen alt f11(vbeditor)/einfuegen/modul


Sub suchen()
Dim zaehler1 As Long
Range("A1:A65535").Clear
For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
zaehler2 = zaehler2 + Sheets(1).Cells(zaehler0, 1)
Sheets(2).Cells(Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1, 1) = zaehler2
Next zaehler0
End Sub

Anzeige
AW: Summe mit For-Schleife
28.08.2004 22:46:36
nighty
hi Viola :)
korrigiert :)
gruss nighty

Sub suchen()
Dim zaehler1 As Long
Sheets(2).Range("A1:A65535").Clear
For zaehler0 = 1 To Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
zaehler2 = zaehler2 + Sheets(1).Cells(zaehler0, 1)
Sheets(2).Cells(Sheets(2).UsedRange.SpecialCells(xlCellTypeLastCell).Row + 1, 1) = zaehler2
Next zaehler0
End Sub

Anzeige
AW: Summe mit For-Schleife
28.08.2004 22:53:10
nighty
hi alle :)
zaehler0 und zaehler2 muessen als long deklariert sein,geh jetzt auch schlafen :)
dim zaehler0 as long
dim zaehler2 as long
gruss nighty
AW: Summe mit For-Schleife
29.08.2004 10:53:40
IngoG
Hallo Viola,
excel kennt ddie function cells nicht deshalb sollte es mE heißen:
...= "=SUM("a1:a" & r & ")" für spalte a
bzw
...="=sum(" & cells(ii,1).address & ":" & cells(ii,r).address & ")" füt spalte ii
Gruß Ingo
PS eine Rückmeldung wäre nett...
Anzeige
;
Anzeige

Infobox / Tutorial

Summe mit For-Schleife in Excel


Schritt-für-Schritt-Anleitung

Um eine Summe mit einer For-Schleife in Excel VBA zu erstellen, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen und dann auf Modul.

  3. Gib den folgenden Code ein:

    Sub SummiereSpalten()
       Dim zaehler0 As Long
       Dim zaehler2 As Long
       Dim letzteReihe As Long
    
       ' Lösche vorherige Daten im Zielblatt
       Sheets(2).Range("A1:A65535").Clear
    
       ' Bestimme die letzte verwendete Zeile in der ersten Spalte
       letzteReihe = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
       For zaehler0 = 1 To letzteReihe
           zaehler2 = zaehler2 + Sheets(1).Cells(zaehler0, 1).Value
           Sheets(2).Cells(zaehler0, 1).Value = zaehler2
       Next zaehler0
    End Sub
  4. Führe das Makro aus: Drücke F5 oder klicke auf Ausführen, um das Makro zu starten.


Häufige Fehler und Lösungen

  1. Fehler: "Function not defined" bei Cells
    Lösung: Stelle sicher, dass Du Cells im richtigen Kontext verwendest. Wenn Du die Funktion Cells in einer Formel verwenden möchtest, muss die korrekte Syntax eingehalten werden:

    ActiveCell.FormulaR1C1 = "=SUM(A1:A" & r & ")"
  2. Fehler: Variablen nicht deklariert
    Lösung: Deklariere alle Variablen am Anfang Deines Codes, um Missverständnisse zu vermeiden:

    Dim zaehler0 As Long
    Dim zaehler2 As Long

Alternative Methoden

Es gibt verschiedene Möglichkeiten, um Zwischensummen in Excel zu berechnen. Eine Alternative zur For-Schleife könnte die Verwendung der SUM-Formel direkt in der Zelle sein. Du kannst dies wie folgt tun:

  1. Gehe in die Zelle, in der Du die Zwischensumme haben möchtest.
  2. Gib folgende Formel ein:
    =SUM(A1:A10)  ' Beispiel für die ersten 10 Zeilen

Diese Methode ist besonders nützlich, wenn Du statische Daten hast.


Praktische Beispiele

Hier sind einige praktische Beispiele, um die Anwendung der For-Schleife zu verdeutlichen:

  1. Summiere mehrere Spalten: Wenn Du die Zwischensummen für mehrere Spalten berechnen möchtest, kannst Du den Code erweitern:

    For s = 1 To AnzahlDerSpalten
       ' Füge hier den Code zum Summieren für jede Spalte ein
    Next s
  2. Dynamische Bereiche: Du kannst den Bereich dynamisch anpassen, indem Du die letzte verwendete Zeile in der Spalte ermittelst.


Tipps für Profis

  • Verwende Option Explicit: Füge am Anfang Deines Codes Option Explicit ein, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler frühzeitig zu erkennen.
  • Nutze Debug.Print: Wenn Du die Werte während der Ausführung überprüfen möchtest, verwende Debug.Print, um die Werte im Direktfenster anzuzeigen.
  • Optimierung der Leistung: Deaktiviere die Bildschirmaktualisierung für schnellere Ausführung:
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True

FAQ: Häufige Fragen

1. Wie kann ich die Summe für eine andere Spalte berechnen?
Du musst den Spaltenindex im Code ändern, z.B. Cells(zaehler0, 2) für die zweite Spalte.

2. Was mache ich, wenn ich einen Fehler in der Formel erhalte?
Überprüfe den Code auf Syntaxfehler und stelle sicher, dass alle Variablen korrekt deklariert sind. Achte auch darauf, dass Du die richtige Syntax für die FormulaR1C1 verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige