da mir dieses Forum schon sehr viel weitergeholfen hat, wende ich mich wieder vertrauensvoll an euch.
Ich habe versucht ein Makro auf die Beine zu stellen, dass mir automatisch eine Summenformel in eine Zelle schreibt. Das Problm ist, diese Zelle liegt nicht immer am gleichen Platz (also Range xx ist da nicht möglich). Daher wollte ich dem Makro sagen: Suche in Spalte E nach "Summe A*"(dieser Begriff steht immer in der Zeile in der die Summe gebildet werden soll) und schreibe in die Zelle zwei Spalten daneben die Formel für die Summenbildung (=SUMME()). Das wäre ja noch in Ordnung wenn der Summenbereich nicht auch noch variable wäre (also =SUMME (A3:A15) geht nicht da die Anzahl variieren kann). Daher muss man nochmal einen Umweg gehen. Überall da wo ein zu summierender Wert steht, steht analog in Spalte A ein "A". Daher habe ich mir gedacht man könnte dem Makro sagen: Zähle alle "A" in Spalte A und mit dem Wert x kann man den Summenbereich eingrenzen (also: summierte oberhalb des eigentlichen Summenfeldes x Zellen ). Und damit nicht genug... sollte das alles klappen soll die Summe über die ganze Zeile (ab dort wo "Summe A*" steht) gebildet werden bis zur benutzten Spalte.
In meinem Kopf klingt das alles logisch, nur wie ich das ganze verschriftlichen soll weiß ich nicht. Ich hoffe man konnte wenigstens ein bisschen verstehen. Als VBA-Anfänger sowas zu beschreiben und erst recht so was zu programmieren ist so gut wie unmöglich.
Ich hab mich auch mal dran versucht bin aber kläglich gescheitert (für einige ist das bestimmt ganz lustig was ich geschrieben habe, aber mich verzweifelt es einfach nur):
Sub Summenbildung() Dim adr As Range Dim iLeSpalte As Integer Dim lLezeile As Long Dim c As Range Dim Anz As Integer Dim i As Integer Dim a As Integer Dim Ende1 As Long Dim Ende2 As Long Dim rng As Range iLeSpalte = Range("IV1").End(xlToLeft).Column lLezeile = Range("A65536").End(xlUp).Row Ende1 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column Ende2 = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column With Worksheets("Tabelle1").Range("A1", Cells(lLezeile, iLeSpalte)) Set c = .Find("Summe A*", LookIn:=xlValues) If Not c Is Nothing Then Set adr = .Range("A4:A300") If Not adr Is Nothing Then Anz = Application.WorksheetFunction.CountIf(adr, "A") For i = 7 To Ende2 For a = 2 To Ende1 ActiveCell.Offset(0, a).Formula = "=Sum(A1:" & Cells(Anz, i) & ")" Next a Next i End If End If End With End Sub
Erstmal danke fürs lesen und noch mehr Dank wenn ihr mir sogar helfen könntet!!
Gruß Lutz