VBA - Neue Zeile an SUMMEWENN anhängen
#1
Hallo Zusammen,
ich bin noch ziemlich neu mit dem Programmieren von Makros und stehe vor einem sehr ärgerlichem Problem.

In meiner Excel Datei füge ich durch einen CommandButton in meiner Tabelle eine neue Zeile hinzu. In der letzten Zeile der Tabelle befindet sich eine =SUMME(SUMMEWENN(...)) Formel. Diese Formel springt eine Zeile nach unten wenn ich einen neuen Auftrag anlege, jedoch wird die neue Zeile nicht in die Formel aufgenommen bzw. an das Ende angehängt.

Ich habe es mit folgendem Code probiert:
Code:
Private Sub CommandButton1_Click()
   Dim lastrow As Long
   Dim i As Integer

   lastrow = ActiveSheet.Cells(Rows.Count, "A").End(xlUp).Row + 1

   i = 4
   Do Until i = lastrow
       calc = "SUMIF($K$3:$K$19,N" & i & ",$L$3:$L$19))"
       ActiveSheet.Range("N" & lastrow + 1 & ":BI" & lastrow + 1).Value = "=SUM(SUMIF($K$3:$K$19,N3,$L$3:$L$19)," & calc
       i = i + 1
   Loop
End Sub

Leider funktioniert das nicht so ganz wie ich es will. Die Formel sieht danach so aus:
=SUMME(SUMMEWENN($K$3:$K$19,N3,$L$3:$L$19),SUMMEWENN($K$3:$K$19,N21,$L$3:$L$19))

Ich hoffe jemand kann mir helfen meinen Code so zu bearbeiten, dass am Ende alle Zeilen aus der Tabelle in die Formel eingefügt werden. 

Schöne Grüße
Top
#2
Konnte in einem anderem Forum eine Lösung finden. Poste den richtigen Weg hier, falls irgendwann mal jemand vor dem gleichen Problem steht.

Code muss so aussehen:
Code:
i = 4
calc = "=SUM(SUMIF($K$3:$K$19,N3,$L$3:$L$19),"
Do Until i = lastrow
   calc = calc & "SUMIF($K$3:$K$19,N" & i & ",$L$3:$L$19),"
   i = i + 1
Loop

ActiveSheet.Range("N" & lastrow + 1 & ":BI" & lastrow + 1).Value = calc & ")"
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste