Microsoft Excel

Herbers Excel/VBA-Archiv

Variable Summe | Herbers Excel-Forum


Betrifft: Variable Summe von: Becker
Geschrieben am: 18.10.2008 02:07:29

Liebe Excellenten,

Ich biette um Euer Hilfe.
Folgendes Makro habe ich hier in Forum von Hajo gefunden;

Sub addieren()
    Dim zahl As Single
    Dim a As Long
    Dim x As Long
    zahl = 0 ' Braucht nicht sein da mit Definition 0
    a = 0 'das hier ist die zeile wo die Zahlen anfangen hier auch
    x = Range("a65536").End(xlUp).Row  ' Dies führt zu einem Fehler falls Zelle 65536 belegt
'    Dim Letzte As Long
'    If [a65536] = "" Then
'        Letzte = [a65536].End(xlUp).Row
'    Else
'        Letzte = 65536
'    End If
    Do Until a > x
        a = a + 1
        If Cells(a, 1) <> "" Then ' wenn die Zelle nicht leer
            zahl = zahl + Cells(a, 1) 'wir der Wert der Zelle dazu addiert
        Else: Cells(a - 1, 2) = zahl ' sonst , d.h. die zelle ist leer wird de Wert in die
            zahl = 0 ' Zelle geschrieben und zahl wieder auf 0 gesetzt
        End If
    Loop
End Sub



Seit 2 Stunden probiere ich den Code von Hajo zum verändern, leider ohne Erfolg.
Gesuchte Lösung:
In Spalte "F" sind Summen Bereiche in mehreren Blocken(ca 800). Zwieschen jeden Block befindet sich eine leere Zeile. In jeder leere Zeile (von Spalte "F") sollte sich eine Summen Formel bilden.
Wie könnte man das mit Hilfe VBA machen?

Diesen Code habe ich auch probiert aber als VBA Anfänger leider reichen meine Kentnisse noch nicht.

Sub summe()
Dim lC As Range
Sheets("Tabelle5").Select
     Set lC = Cells(Rows.Count, 6).End(xlUp)
     lC.Offset(6, 0).Formula = "=sum(F2:F" & lC.Row & ")"
     
End Sub



Für jede Hilfe bin ich Euch sehr dankbar

Gruß Daniel

  

Betrifft: AW: Variable Summe von: Chris b.
Geschrieben am: 18.10.2008 07:13:29

Hallo Daniel,
das sollte Dir weiterhelfen.
Einfach in ein Modul kopieren.
Führt die Aktion immer in der aktuell angezeigten Tabelle aus.


Option Explicit
Dim lc As Integer
Dim x As Integer

Sub summenformel_erstellen()
lc = Cells(Rows.Count, 6).End(xlUp).Row
xx = 1
For x = 1 To lc
    If Cells(x, 6) = "" Then
        n = x
        Cells(x, 6).Formula = "=sum(F" & xx & ":F" & x - 1 & ")"
        Cells(x, 6).Interior.ColorIndex = 3
        xx = x + 1
    Else
    End If
Next

End Sub




gruß Chris


  

Betrifft: AW: Variable Summe von: Becker
Geschrieben am: 18.10.2008 09:34:48

Hallo Chris,

Herzlichsten Dank. Danke Dir Tausende male, Deine Lösung ist genau das gesuchte Lösung.
Dank Dir habe ich noch was dazu gelernt, fett Format mit rote Hintergrundsfarbe.

Danke Dir Chris
Gruß Daniel


  

Betrifft: AW: Variable Summe-Chris biette heilf mir von: Becker
Geschrieben am: 18.10.2008 10:44:41

Hallo Chris,
Habe wieder ein kleines Problemm, Dein Code lief leider nur einmal richtig.
Jetzt bleibt er jedes mal stecken und zwar hier "xx = 1" mit Fehler Meldung
"Fehler beim Kompilieren, Variable nicht defieniert" ????

Hab leider keine Ahnung was da falsch ist, habe soger alles in eine neue Mappe probiert und wieder das gleiche Fehler?!
Kannst Du mir bitte mit Variable weiter helfen?

Danke Dir für Diene Mühe

Gruß Daniel


  

Betrifft: AW: Variable Summe-Chris biette heilf mir von: Gerd L
Geschrieben am: 18.10.2008 11:46:44

Hallo Daniel,

dann deklariere halt alle Variablen, z.B.
Dim xx as long, n as ....

Gruß Gerd


  

Betrifft: AW: Variable Summe-Chris biette heilf mir von: Chris b.
Geschrieben am: 18.10.2008 12:08:59

schon beantwortet Gerd oder ?



Wenn ja schönen Samstag


  

Betrifft: AW: Variable Summe-Chris biette heilf mir von: Becker
Geschrieben am: 18.10.2008 13:38:22

Hallo Gerd&Chris,

Liber Profis Danke Euch Tausende male.

Als Anfänger wußte ich diesen Trick nicht, jetzt pfeift es wie gewünscht.

Schönes WE
Daniel


  

Betrifft: AW: Variable Summe von: Matthias L
Geschrieben am: 18.10.2008 08:05:36

Hallo Daniel

Ich denke das steht in Verbindung mit dem Beitrag, in dem Peter Feustel Dir geantwortet hat
https://www.herber.de/forum/archiv/1016to1020/t1017283.htm#1017285

schon in diesem Code kannst Du das mit einbinden:

hinter dem zweiten WkSh.Rows(lZeile).Insert shift:=xlDown

einfach diese Zeile einfügen:
Cells(lZeile, 6).FormulaR1C1 = "=SUMIF(C[-2],R[-1]C[-2],C)"

ich habe hier mal ein Beispiel mit dem Code von Peter und dieser neuen Zeile erstellt

https://www.herber.de/bbs/user/56089.xls

Gruß Matthias


  

Betrifft: AW: Variable Summe von: Becker
Geschrieben am: 18.10.2008 09:57:21

Hallo Mathias,

auch Deine Lösung ist einfach Spitze. Danke Dir Tausende male.
Du hast recht der Beitrag hat die Verbiendung mit Peter Feustels Lösung.
Ich war mir nicht mehr sicher ob das Problem richtig beschrieben wurde daher habe ich die Formulierungs Frage neu erstellt.

Dank diese Excel Gemeinde und Dank Deiner/Euer Hilfe lerne ich immer noch was dazu.

Gruß Daniel


Beiträge aus den Excel-Beispielen zum Thema "Variable Summe"