Anzeige
Archiv - Navigation
512to516
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
512to516
512to516
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA...SUMME

VBA...SUMME
05.11.2004 10:35:17
Luke
hallo,
ich möchte in excel mit vba zwischensummen generieren. in spalte 8 sind zahlen eingetragen, wobei einzelne zellen dazwischen leer sind. in diese Leerzellen sollen nun die summe der obigen zahlen eingetragen werden. das ganze soll natürlich so lange sattfinden, bis keine zahlen mehr vorhanden sind
mein "programm" schaut wie folgt aus:
For i =1 to 1136
If cells(i, 8).Value = emtpy Then
cells(i, 8) = x
x = 0
Else: x = (x + cells(i, 8).Value)
End If
Das problem liegt im schleifenkopf....
wie schreibe ich dass denn, dass das programm nur solange addieren soll, bis keine zahlen mehr vorhanden sind....
i=cells(Rows.count,8).End(xlDown)...?
Außerdem noch mal ne kurze frage...
wenn ich einzelne SPALTEN, die in zeile 3 alle leer sind, löschen will, wie mache ich das?
Vielen Dank,
GREETZ
LUKE

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

Betreff
Datum
Anwender
Anzeige
AW: VBA...SUMME
Galenzo
Hallo,
zum zweiten Teil deiner Frage fällt mir dieser Einzeiler ein:
Range(Cells(3, 1), Cells(3, Columns.Count).End(xlToLeft)).SpecialCells(xlCellTypeBlanks).EntireColumn.Delete
Beachten: Wird keine leere Zelle in zeile 3 gefunden gibt's einen fehler. Daher am einfachsten ein "On Error Resume Next" davor schreiben, schon bist du das Problem los.
Viel Erfolg!
AW: VBA...SUMME
Reinhard
Hi Luke,

Sub tt()
For n = 1 To Cells(65536, 8).End(xlUp).Row + 1
If Cells(n, 8).Value <> "" Then
Cells(n, 8) = x
x = 0
Else
x = x + Cells(n, 8).Value
End If
Next n
End Sub

Gruß
Reinhard
Anzeige
AW: VBA...SUMME
PeterW
Hallo Reinhard,
es mag an der Tageszeit und an dem ausgiebigen "Feierabendbier" liegen aber kannst du mir das mal in Prosa übersetzen?
If Cells(n, 8).Value "" Then
Cells(n, 8) = x
x = 0
Ich verstehe das so: wenn eine Zelle nicht leer ist dann schreibe in diese Zelle 0 - und das macht für mich wenig Sinn. Habe den Code auch mal laufen lassen. In H1, H8 und H 10 stehen Werte, die anderen Zellen in H sind leer. Und es passiert was ich befürchte: in den Zellen, in denen ein Wert stand steht jetzt 0.
Gruß
Peter
AW: VBA...SUMME
PeterW
Hallo Luke,
die Nebenfrage ist nicht nicht ganz klar. In Zeile 3 gibt es in jeder Spalte nur eine Zelle. Sofern sich dein "alle" auf die Zellen in Zeile 3 bezieht dann vielleicht so:

Sub ZeileDreiLeerSpalteLoeschen()
Dim iCol As Integer
For iCol = Cells(3, Columns.Count).End(xlToLeft).Column To 1 Step -1
If IsEmpty(Cells(3, iCol)) Then
Columns(iCol).Delete
End If
Next
End Sub

Gruß
Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige