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

Code erweitern

Forumthread: Code erweitern

Code erweitern
30.01.2025 22:07:18
JR2025
Hallo,

Dank der Hilfe hier im Forum verwende ich den folgenden Code

Sub Leerzeile()

Dim ErsteZeile As Long, LetzteZeile As Long, Spalte As Long, i As Long
Dim rng As Range
ErsteZeile = 7 ' Berechnung in der Tabelle beginnt in Zeile
LetzteZeile = 6000 ' letzte Zeile die berechnet wird
Spalte = 1 ' das ist die Spalte in der geprüft wird ob sich das Datum ändert
For i = LetzteZeile To ErsteZeile Step -1
If Cells(i, Spalte) > Cells(i - 1, Spalte) Then
Rows(i).Insert (xlShiftDown)
Cells(i, 24) = 1
End If
Next i
For Each rng In Columns(15).SpecialCells(xlCellTypeConstants).Areas
rng(rng.Rows.Count + 1).Formula = "=sum(" & rng.Address & ")"
Next
End Sub


hat bis jetzt super funktioniert.
jetzt ist aber ein neues Problem aufgetaucht bei dem ich eure hilfe benötige.

in der Code Zeile
For Each rng In Columns(15).SpecialCells(xlCellTypeConstants).Areas
rng(rng.Rows.Count + 1).Formula = "=sum(" & rng.Address & ")"
wird eine Formel erstellt die eine Summe bildet
durch leere Zellen fehlen aber telweise Bereiche die zu falschen Ergebnissen führen.

ich habe versucht anstelle xlCellTypeConstants das selbe mit xlCellTypeFormulas zu erstellen was aber am Ergebnis nichts geändert hat.

Gibt es die Möglichkeit den Bereich bis zur vorher erstellten Formel abzudecken ohne Unterbrechung durch leere Zellen?

Danke
bis später
Jörg


Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code erweitern
30.01.2025 23:37:05
Onur
Nimm doch SUMIF mit Bedingung, dass nicht leer.
AW: Code erweitern
31.01.2025 02:30:26
Daniel
Hi
ohne Beispieldatei kann man nur raten, aber probier's mal so:
    For Each rng In Columns(Spalte).SpecialCells(xlCellTypeConstants).Areas

rng(rng.Rows.Count + 1).Offset(0, 15 - Spalte).Formula = "=sum(" & rng.Offset(0, 15 - Spalte).Address & ")"
Next

dh du ermittelst die Areas in der Spalte, die du für das Einfügen der Leerzeilen verwendest hast (denn dort sollten keine störenden Leerzellen sein) und verschiebst diese dann in die Spalte 15.
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige