Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1100to1104
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
Inhaltsverzeichnis

subtotal in UserForm

subtotal in UserForm
Sara
Hallo liebes Forum,
bräuchte Hilfe von Euch VBA-Profis! Bin VBA-Anfänger und habe mich schon quer durchs Netz gegoogelt aber keine Lösung gefunden.
Ich habe ein UserForm erstellt das mir ermöglicht einen neuen Datensatz jeweils am Ende einer Liste hinzuzufügen. In der sechsten Spalte der Liste werden Summen eingetragen (Textbox "Summe" in meinem UserForm). Nun soll jeweils am (variablen) Ende der Liste unter dieser Spalte eine Teilsumme stehen weil die Liste gefiltert wird.
Ich habe hierzu zwei verschiedene Varianten gefunden die aber jeweils nicht hundertprozentig funktionieren.
Hier mein Code:

Private Sub Datensatz_einfügen_Click() ' Button Datensatz anhängen
Rows("5:5").Copy
zeile = ActiveSheet.UsedRange.Rows.Count
Cells(zeile, 1).PasteSpecial
Application.CutCopyMode = False
Cells(zeile, 1).Value = SachbearbeiterName 'Sachbearbeiter Name
Cells(zeile, 2).Value = Aktenzeichen 'Aktenzeichen
Cells(zeile, 3).Value = DatumZuweisung 'Datum
Cells(zeile, 5).Value = SachbearbeiterNameXXXX 'Sachbearbeiter Name
Cells(zeile, 6).Value = CDbl(Summe) 'verfügbare Summe
SachbearbeiterName.Value = ""
Aktenzeichen.Value = ""
DatumZuweisung.Value = ""
SachbearbeiterNameXXXX.Value = ""
Summe.Value = "0,00"
Cells(zeile + 1, 6).FormulaR1C1 = "=SUBTOTAL(9,R[-22]C:R[-1]C)" 
End Sub

Mit dieser Variante habe ich das Problem dass zwar summiert wird aber natürlich immer nur die letzten 22 Zeilen (hab die Formel über den Makrorekorder aufgezeichnet und eingefügt) weil ich dies ja als festen Wert vorgebe. Beim filtern wird die Zelle mit der Teilsumme aber richtigerweise immer unten angehängt.
Bei meiner Suche nach einer variablen Variante der subtotal-Formel bin ich auf dass hier gestossen:
' Cells(zeile + 1, 6) = Application.WorksheetFunction.Subtotal(9, Range("F:F"))
Hier wird nun richtigerweise die betroffene Spalte komplett summiert, egal wie viele Zeilen unten angehängt werden. ABER beim filtern verschwindet die Zelle mit der Teilsumme!
Wo liegt mein Fehler?
Vielen Dank schon mal im Voraus für Eure Antworten!
Gruß,
Sara

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
"=SUBTOTAL(9,R2C:R[-1]C)"
04.09.2009 10:49:44
NoNet
Hallo Sara,
die Referenzierung per "=SUBTOTAL(9,R[-22]C:R[-1]C)" ist ja ein relativer Bezug, also :
Summiere Zeilen "22 Zeilen oberhalb der Summenzeile" bis "1 Zeile oberhalb der Summenzeile".
Ich vermute mal, dass Deine Liste (und damit die zu summierenden Werte) immer in zeile 2 beginnt (Zeile 1 = Überschriften) und damit nicht variabel (relativ), sondern fix (absolut) sind, das drückt man dann so aus :
Cells(zeile + 1, 6).FormulaR1C1 = "=SUBTOTAL(9,R2C:R[-1]C)"
Die 2 bedeutet : Werte, die summiert werden, beginnen absolut in Zeile 2 !
Gruß, NoNet
Anzeige
AW: subtotal in UserForm
04.09.2009 10:49:51
Rudi
Hallo,
lass 'ne Leerzeile zwischen Formel und Daten, dann wird sie nicht mitgefiltert.
Cells(zeile + 2, 6).FormulaR1C1 = "=SUBTOTAL(9,R2C:R[-2]C)"
Gruß
Rudi
@Rudi : *lahme Krücke* ;-)) _oT - mB
04.09.2009 10:53:42
NoNet
du tust mir weh ...
04.09.2009 11:55:04
Rudi
... ich bin nicht immer blau.
Gruß
Rudi
Naja : ob ROT oder BLAU.... :-D
04.09.2009 12:11:32
NoNet
Hey Rudi,
auch wenn derzeit schon wieder die ersten XMAS-Leckereien in den Supermärkten angeboten werden, bin ich wahrlich noch nicht in Weihnachts-Stimmung. Ansonsten wäre ich natürlich auf ROT umgeschwenkt ;-) :
Wie entsteht ein Nikolaus ?
Gruß, NoNet
Anzeige
AW: subtotal in UserForm
04.09.2009 11:51:38
Sara
Juchuu!! Jetzt funktioniert es!
Vielen Dank Euch beiden für die schnelle Hilfe!
(der Schlumpf is toll)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige