Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
904to908
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
904to908
904to908
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formel in varialben Spaltenbereichen einfügen

Formel in varialben Spaltenbereichen einfügen
09.09.2007 15:41:19
Ela
Liebe Fachleute,
eine große Tabelle mit zahlreichen Spalten.
Spalte A-E haben "eigene" Spaltenüberschriften, dann beginnt ein Bereich, der sich 12 x wiederholt (für 12 Monate des Jahres), allerdings variabel in der Spaltenanzahl:
Spalte F = 02 - Grundbetrag
Spalte G = 03 - Aufschlag1
Spalte H = 04 - Aufschlag2
Spalte I = 06 - Aufschlag3
Spalte J = 07 - Aufschlag4
Spalte K = 08 - Aufschlag9
Spalte L = Aufschlag10
Spalte M = Summe
Spalte N = 02 - Grundbetrag
Spalte O = 03 - Aufschlag1
Spalte P = 04 - Aufschlag2
Spalte Q = 07 - Aufschlag4
Spalte R = 08 - Aufschlag9
Spalte S = Aufschlag10
Spalte T = Summe
usw.
"02 - Grundbetrag" und "Aufschlag 10" tauchen immer auf, die anderen Spalten sind variabel. Beispiel: Mal taucht Spalte "06 - Aufschlag3" auf, mal nicht.
Mein Problem ist nun, dass ich in allen 12 Spalten, in denen das Wort Summe in Zeile 3 auftaucht, beginnend ab der Zeile 5 bis zur letzten (ebenfalls variablen) belegten Zeile der Tabelle, die Summe, jeweils beginnend von "02 - Grundbetrag" bis "Aufschlag 10" mit SUMME(?:?) errechnen möchte.
Mit meinen bescheidenen VBA-Kenntnissen bekomme ich das nicht hin, weil ich nicht weiß, wie ich Excel beibringen soll, dass er in "Summe" immer die Beträge in den mal 6, mal 7 Spalten umfassenden Bereich summieren soll, der von "02 - Grundbetrag" bis "Aufschlag 10" direkt links neben "Summe" steht.
Kann mir jemand von euch helfen?
Recht herzlichen Dank für eure Mühe im voraus.
Ela

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formel in varialben Spaltenbereichen einfügen
09.09.2007 16:03:33
Daniel
Hi
wärs nicht einfacher, daß die Spalten Aufschlag1 bis Aufschlag9 immer vorkommen (nur dann halt entsprechend leer sind)?
dann könnte man überall für SUMME die gleiche Formel reinschreiben, das wär dann deutlich einfacher.
ansonsten lad mal ne Beispieldatei hoch
(spalten sollten alle vorhanden sein, bei den Zeilen reichen so die ersten 10 Datenzeilen)
Gruß, Daniel

AW: Formel in varialben Spaltenbereichen einfügen
09.09.2007 16:26:30
Ela
Hallo Daniel,
herzlichen Dank für deine Antwort. Ich gebe dir selbstverständlich Recht. Es wäre tatsächlich besser und übersichtlicher, die gleiche Spaltenanzahl pro Monat vor sich zu haben. Leider bekomme ich diese Tabelle genau so geliefert, wie beschrieben ... und soll die Bearbeitung per VBA "vereinfachen".
Hier ein Beispiel:
https://www.herber.de/bbs/user/45821.xls
Viele Grüße von Ela

Anzeige
AW: Formel in varialben Spaltenbereichen einfügen
09.09.2007 16:53:04
Josef
Hallo Ela,
diesen Code in ein allgemeines Modul kopieren.
Bezieht sich immer auf die aktive Tabelle.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit


Sub Summen()
Dim rng As Range, rngF As Range
Dim lngR As Long, lngEnd As Long
Dim intC As Integer, intEnd As Integer
Dim strFirst As String

With ActiveSheet
    
    lngEnd = Application.Max(5, .Cells(Rows.Count, 1).End(xlUp).Row)
    intEnd = .Cells(3, Columns.Count).End(xlToLeft).Column
    intC = 6
    
    Set rng = .Range(.Cells(1, 6), .Cells(3, intEnd - 1))
    
    Set rngF = rng.Find(What:="Summe", LookAt:=xlWhole)
    
    If Not rngF Is Nothing Then
        strFirst = rngF.Address
        
        Do
            
            For lngR = 5 To lngEnd
                .Cells(lngR, rngF.Column) = Application.Sum(.Range(.Cells(lngR, intC), .Cells(lngR, rngF.Column - 1)))
                .Cells(lngR, intEnd) = .Cells(lngR, intEnd) + .Cells(lngR, rngF.Column)
            Next
            
            intC = rngF.Column + 1
            
            Set rngF = rng.FindNext(rngF)
            
        Loop While Not rngF Is Nothing And strFirst <> rngF.Address
        
    End If
    
End With

End Sub

Gruß Sepp

Anzeige
AW: Formel in varialben Spaltenbereichen einfügen
10.09.2007 01:50:27
Ela
Hallo Sepp,
ganz herzlichen Dank für deine Hilfe. Deine Formel funktioniert einwandfrei, der einzige kleine Einwand: Die Summe wird bis Ende des kompletten Tabellenblattes durchgerechnet und stoppt nicht bei der letzten verwendeten Zeile.
Ich traue mich kaum zu fragen, da ich mich falsch ausgedrückt hatte: Die Summen werden ja perfekt berechnet. Aber gibt es eine Möglichkeit, nicht nur die Summe auszugeben, sondern die Summe in Form der Formel (=SUMME(?:?)?
Viele Grüße von Ela

AW: Formel in varialben Spaltenbereichen einfügen
09.09.2007 17:04:00
Daniel
Hallo
da war der Josef mal wieder schneller als ich
nichtsdesdotrotz, hier mein Code

Sub Summen_einfügen()
Dim EndSP As Long, EndZe As Long, StartSp As Long, StartZe As Long
Dim Zelle As Range
Dim Sp0 As Long, Sp1 As Long, Sp2 As Long
Rows(1).Insert
EndSP = Rows(2).Find(what:="Endsumme").Column
EndZe = Columns(1).Find(what:="Endsumme").Row - 1
StartSp = 6
StartZe = 6
Range(Cells(1, StartSp), Cells(1, EndSP)).FormulaR1C1 = "=IF(R[3]C=""Summe"",TRUE,"""")"
Sp1 = StartSp
For Each Zelle In Rows(1).SpecialCells(xlCellTypeFormulas, 4)
Sp0 = Zelle.Column
Sp2 = Zelle.Column - 1
With Range(Cells(StartZe, Sp0), Cells(EndZe, Sp0))
.FormulaR1C1 = "=SUM(RC" & Sp1 & ":RC" & Sp2 & ")"
.Formula = .Value
End With
Sp1 = Sp0 + 1
Next
Rows(1).Delete
End Sub


du kannst ja beides ausprobieren, wäre mal intessant, was schneller ist oder dir besser gefällt.
Gruß, Daniel

Anzeige
AW: Formel in varialben Spaltenbereichen einfügen
10.09.2007 01:52:00
Ela
Hallo Daniel,
ganz herzlichen Dank für deine Hilfe. Deine Lösung funktioniert einwandfrei - wie auch die von Josef. Zudem stoppt die Berechnung an der richtigen Stelle.
Ich traue mich kaum zu fragen, da ich mich falsch ausgedrückt hatte: Die Summen werden ja perfekt berechnet. Aber gibt es eine Möglichkeit, nicht nur die Summe auszugeben, sondern die Summe in Form der Formel (=SUMME(?:?)?
Viele Grüße von Ela

AW: Formel in varialben Spaltenbereichen einfügen
10.09.2007 14:32:00
Daniel
Hi
bei meiner Lösung ja
setz einfach ein Hochkomma ( ' ) vor die Zeile .Formula = .value
dieser Befehl sorgt dafür, daß die Formeln durch ihr Ergebnis ersetzt werden.
durch das Hochkomma wird der Befehl nicht mehr ausgeführt, man nennt das auskommentieren
wenn du später doch lieber Werte drin stehen haben willst, nimmst du das Hochkomma einfach wieder raus.
diese Technik verwendet man normalerweise, um Kommentare im Code unterzubringen, dh. Hinweistexte, damit man auch später noch versteht, was der Code eigentlich macht, daher der Name auskommentieren.
Gruß, Daniel

Anzeige
AW: Formel in varialben Spaltenbereichen einfügen
10.09.2007 19:24:00
Ela
Lieber Daniel,
ihr Excelfachleute seid Zauberer, alle miteinander :-). Ganz herzlichen Dank für deine schnelle und so überaus hilfreiche Antwort.
Viele Grüße von Ela

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige