Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1108to1112
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
Inhaltsverzeichnis

Zwischensumme einfügen

Zwischensumme einfügen
Chris
Hallo Excelianer
Ich möchte in eine Auswertung mehrere Zwischensumme einfügen. Da ich als aufmerksamer VBA-Schüler :-) natürlich weiss das man Activate und Select und Activecell meidet wie der Teufel das Weihwasser, komme ich auf Folgenden Code
For Each zelle In Range("B3:B33").Cells
If zelle.Offset(1, 0) = zelle Then
x = x + zelle.Offset(0, 1)
GoTo weiter
Else
x = x + zelle.Offset(0, 1)
zelle.Offset(1, 0).EntireRow.Insert
zelle.Offset(1, 1) = x
zelle.Offset(1, 0) = "Gesamt " & zelle
End If
weiter:
Next zelle
Das Problem ist nur wenn die Zelle eingefügt wird verändert sich ja
mein Bereich und die nächste Zelle ist immer unterschiedlich zur vorhergehenden
>>zelle.Offset(1, 0) = "Gesamt " & zelle Wie kann ich nun
a) den Bereich erweitern und
b) mit der Nextschleife die nächste Zelle überspringen?
Vielen 1000 Dank schon mal.

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

Betreff
Benutzer
Anzeige
AW: Zwischensumme einfügen
22.10.2009 14:02:54
David
Hallo Chris,
du musst die Schleife von unten nach oben durchlaufen lassen:
zum Beispiel so:
for i=33 to 3 step -1
if range("B"&i).offset....
next

Gruß
David
AW: Zwischensumme einfügen
22.10.2009 14:12:06
Chris
ein Möglichkeit, aber wie kann ich dann den Zwischensummenwert UNTER die entsprechenden Werte schreiben? Vielen Dank schonmal
AW: Zwischensumme einfügen
22.10.2009 14:22:45
Chris
OK, Danke Problem gelöst
ich schalte ein
If Zelle Like "Gesamt*" Then
vor. Dann funktioniert es.
noch eine Version...
22.10.2009 15:04:56
Tino
Hallo,
wenn Du möchtest, kannst Du mal diese Version testen
mit eine Hilfsspalte am Ende der Tabelle, die am Ende wieder gelöscht wird.
Sub test()
Dim A As Long, Bereich As Range, rZelle As Range
Dim MaxCol As Long
Dim iCalc As Integer


With Application
  iCalc = .Calculation
 .Calculation = xlCalculationManual
 .ScreenUpdating = False


    Set Bereich = Range("B3:B33")
    MaxCol = Columns.Count
    
    With Bereich.Offset(1, MaxCol - 2)
        .FormulaR1C1 = "=IF(AND(R[-1]C3<>RC3,R[-1]C2<>""ZW:"",RC2<>""ZW:""),SUMIF(R3C3:R33C3,R[-1]C3,R3C2:R33C2),"""")"
        On Error Resume Next
         .SpecialCells(xlCellTypeFormulas, 1).EntireRow.Insert
         Set rZelle = .SpecialCells(xlCellTypeFormulas, 1)
        On Error GoTo 0
         
        If Not rZelle Is Nothing Then
          For Each rZelle In rZelle
           rZelle.Offset(-1, -(MaxCol - 2)) = "ZW:"
           rZelle.Offset(-1, -(MaxCol - 3)).Value = rZelle.Value
          Next rZelle
        End If
      
        .EntireColumn.Delete
    End With

 .Calculation = iCalc
 .ScreenUpdating = True
End With

End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige