Clever-Excel-Forum

Normale Version: Summenformel per VBA erweitern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo Zusammen,
ich hoffe Ihr könnt mir bei meinem Problem weiterhelfen.
Ihr findet im Anhang in der Excel-Datei (Vorlage) mit einer Makro die mit einen Button (Einfügen einer Zeile + Formel) aktiviert wird.
 
Diese wird immer aktiviert um eine neue Zeile einzufügen.
Zu meinem Problem:
Wenn ich z.B auf die Zelle A17 klicke und dann die Makro mit den Button aktiviere wird die Zeile eingefügt, aber leider bezieht die Summe in Zelle I9 und L9 nicht die neue Zeile mit ein.
Kann man die Makro so schreiben, dass die eingefügten Zeilen von den Summen in den jeweiligen Sektionsbereich die begrenzt wird (Eine Sektion ist durch die dicken Linien definiert) mit einbezogen werden können bei Aktivierung dieser Makro?

Das man die Makro so umschreibt: Suche bei der aktiven Zeile wo man die Makro ausführt nach oben (Spalte I und L) nach einer Summe und die erste die du findest -> sage diese Summe das die Zeile die eingefügt worden ist bei der Summenformel mit einbezogen werden soll.

Ich hoffe ich habe das nicht zu blöd für euch beschrieben.
Danke schon mal im Voraus für eure Hilfe.
Hallo Dietmar,

was du da vorhast, ist aus Excel- und EDV-Sicht voll daneben. So baut man eine Liste nicht auf. Da gehören:

1. keine Zwischenüberschriften rein.
2. werden Zeilen nicht irgendwo eingefügt, sondern am Ende der Liste eingefügt. Dann tragen sich da deine Formeln (oh Wunder!) automatisch ein. Die "richtige" Position bekommt deine Zeile durch sortieren.

Wenn du das beachtest, kommst du ganz ohne Makros aus. Das schreibt dir ein ganz großer Makro-Fan.
Zur Info, das ist die Fortsetzung von https://www.ms-office-forum.net/forum/sh...p?t=373803
Schade, dass auf mein dortiges #7 nicht eingegangen wurde.
Das enthielt nämlich außer der Kritik (siehe Klaus-Dieter) auch einen Workaround …
Hallo Klaus-Dieter,
 
erstmal danke, dass Sie sich die Zeit genommen haben und mir schreiben.
 
Ich muss Ihnen leider mitteilen, dass ich von VBA Programmierung keine Ahnung habe.
Es kam bei mir auf Arbeit die Frage mit den Kollegen auf, ob so etwas möglich ist.
Ich habe mich dann bereiterklärt, mal die Frage in einen Forum zu stellen.
 
Diese Excel-Datei wird bei uns auf Arbeit für die Kalkulation verwendet.
Leider kann ich daher den Aufbau der Datei nicht ändern.
 
Ein Kollege hat auch schon eine Leer Zeile als letzte Zeile am Ende einer Sektion eingefügt, und rein geschrieben, dass man diese Zeile nicht löschen darf.
Somit bleibt man in der jeweiligen Sektion mit dem Cursor und die Summen beziehen immer die eingefügte Zeile mit ein.
 
Weil ich ja sehr neugierig bin: wäre es trotzdem möglich dass man bei einfügen eine Zeile der Summe sagen kann beziehe diese Zeile mit ein und wie ist das genau mit den Sortieren gemeint?

Danke für die Hilfe.
Hallo Dietmar,

in Foren ist es üblich, dass man sich duzt.

Zitat:Ich muss Ihnen leider mitteilen, dass ich von VBA Programmierung keine Ahnung habe.

Ich hatte nichts von einer VBA-Programmierung geschrieben. Ganz im Gegenteil!

Zitat:Diese Excel-Datei wird bei uns auf Arbeit für die Kalkulation verwendet.

Leider kann ich daher den Aufbau der Datei nicht ändern.

Das liest man mehrfach am Tag in den Foren. Mir fehlt die Bereitschaft, das zu akzeptieren. Wenn man in einem Forum um Hilfe bittet, muss man auch anerkennen, dass die Leute, die da Antworten, wissesn was sie schreiben. Wenn dann die Aussage kommt, dass der Listenaufbau Mist ist, dann ist das so. So wie jedes andere Programm, braucht auch Excel einen betimmten Listenaufbau, damit man die Standardfunktionen einsetzen kann. Daran gibt es nichts zu deuteln. Es kann auch niemand seine eigenen Regeln für die Teilnahme am Straßenverkehr aufstellen.

Zitat:wäre es trotzdem möglich dass man bei einfügen eine Zeile der Summe sagen kann beziehe diese Zeile mit ein

Normalerweise passt Excel das an.

Zitat:wie ist das genau mit den Sortieren gemeint?

Nun wenn man eine Liste hat, in der es, aus welchem Grund auch immer, Gruppierungen gibt, (zum Beispiel verschiedene Abteilungen), dann muss man die neuen Daten nicht bei der Abteilung einfügen, sondern kann sie, so wie es richtig wäre, am Ende der Liste anfügen. Danach wird die Gesamtliche nach Abteilungen sortiert, und die neue Zeile steht an der richtigen Stelle. 

Grundsätzlich kann man sagen: wenn eine Liste nicht so aufgebaut ist, dass man sie jederzeit über alle Zeilen sortieren kann, hat man beim Aufbau einen Fehler gemacht.
Hallo Klaus-Dieter,

danke für die Informationen.

Ich werde morgen meinen Kollegen Ihre Anmerkungen zukommen lassen.

Schade, dass unsere Vorstellungen mit der bestehenden Tabellenform nicht gut sind.
Wir sind halt auch keine Excel-Profis sondern nur Anwender.

Danke auch nochmal an RPP63.
Leider habe ich das mit den Zwischensummen was du geschrieben hast nicht verstanden.
Trotzdem Danke für deinen Hinweis.

Vielleicht findet trotzdem noch jemand eine Lösung ohne das man die Tabelle Umbauen muss.
Hallo Dietmar,

Code:
Sub TestEinfuegen()
  With ActiveCell.EntireRow
    If Len(.Cells(1, 2).Value) Then
      .Offset(-1).Copy
      .Offset(-1).Insert
      .Offset(-1).SpecialCells(2, 1) = 0
      .Offset(-1).SpecialCells(2, 2) = ""
      Cells(.Row - 1, 3).Value = "Neu"
      Application.CutCopyMode = False
    Else
      MsgBox "Bitte eine Zelle unterhalb eines Blockes markieren!"
    End If
  End With
End Sub

Gruß Uwe
Moin

Ich bin nicht der Kalkulations-Experte aber ich wäre der Meinung dass bei einer Kalkulation die Bestandteile feststehen. Es muss nichts hinzugefügt oder gelöscht werden.
Hallo

Es auch eine andere Möglichkeit. Mache die Erfassung in 5 einzelnen Tabellen ohne VBA und füge sie mit Power Query danach zusammen so hast du dann alles in einer Tabelle.
Seiten: 1 2