Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1384to1388
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

Summe mit variablem Bereich

Summe mit variablem Bereich
13.10.2014 09:51:30
Marc
Hallo,
ich habe seinerzeit (auch mit Hilfe dieses Formums) für eine soziale Kleiderbörse mit Excel 2003 eine Abrechnungshilfe geschrieben. Jetzt mit 2007/2010 funktioniert das Marko nicht mehr, es wird lediglich ""Summe()"" ausgegeben...im Makro steht:
Sub Summe()
' Tastenkombination: Strg+s
ActiveCell = "Summe"
Application.SendKeys ("%=~")
End Sub

Also, in der Liste trägt die Kassiererin in Spalte A den die Verkäufternummer ein und in Spalte B den dazugehörigen Preis. Hat sie alle Arktikel erfasst soll mit der Tasenkombination STRG+S in der daunter folegende Zeile in Spalte A "Summe" geschrieben stehen und in Spalte "B" die Summe aus dem darüber liegenden Bereich bis zur letzten Summe... (ählich so wie es mit der händischen version "Autosumme klappt). Die Zeile mit der Summe soll auch noch anders formatiert sein...siehe Datei in er ich das händisch gemacht habe....wäre toll wenn jemand eine Lösung hätte...DANKE!!!!
https://www.herber.de/bbs/user/93133.xlsx

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Summe mit variablem Bereich
13.10.2014 10:38:33
yummi
Hallo Marc,
hiermal ein Makro was das leistet, was du willst (hoffe ich)
Das ganze mit ctrl+s zu steuern würde ich noch mal überdenken, dass ist normalerweise speichern. Ich hab es jetzt auf ctrl+S gelegt.
https://www.herber.de/bbs/user/93135.xlsm
Gruß
yummi

...und was ist...
13.10.2014 11:12:44
Oberschlumpf
Hi
...wenn zu den schon vorhandenen Zeilen noch weitere hinzugefügt werden sollen?
Also oberhalb von schon vorhandenen Zeilen mit der Summenformel.
Ciao
Thorsten

AW: ...und was ist...
13.10.2014 11:17:45
yummi
Hi Oberschlumpf,
dann schlumpfst du das "Summe" aus der Zelle und es wird neu geschlumpft.
;-)
Grüße
yummi

Anzeige
aha..ähh...hmm?...owT
13.10.2014 11:21:09
Oberschlumpf

ok auf deutsch ;-)
13.10.2014 11:23:12
yummi
na gut auf deutsch ;-)
wenn du das Wort Summe aus der Zelle löscht und dann nochmal Ctrl+S drückst, wird die Summe auch für die neuen Zeilen berechnet.
;-)
Gruß
yummi

oder noch einfacher
13.10.2014 11:25:39
yummi
wenn du eine neue Zeile einfügst und dort einen Betrag eingibst, dann aktualisiert sich die Summe automatisch.
Gruß
yummi

AW: oder noch einfacher
13.10.2014 11:36:20
Oberschlumpf
ok, aber das neu einfügen einer Zeile hätte man ja auch gleich aktualisieren können...siehe mein Beitrag ;-)

AW: oder noch einfacher
13.10.2014 11:40:41
yummi
wir werden eh kein feedback bekommen

AW: oder noch einfacher
13.10.2014 11:52:30
Oberschlumpf
a) ich meinte nich "aktualisieren", sondern "automatisieren" :-)
b) wenn kein feedback, gibbs a) verbal Kloppe für Marc + b) landet er zumindest auf meiner "schwarzen liste" --> gibt keine Hilfe mehr für Marcs :-)

Anzeige
AW: oder noch einfacher
13.10.2014 12:06:39
Marc
Hallo zusammen,
dass ging aber flux....Danke euch erstmal...aber denkt dran...hier schreibt ein Anfänger...also nicht zu kompliziert schreiben..
hab jetzt mal das Makro (da kommt doch kein normaler Mensch drauf:-)) in die originale Datei kopiert...und es läuft...:-) bis auf eine Kleinigkeit...bei jedem SRG-S rechnet er alle summen neu aus...bei 5.000 Verkäufen dauert das zu lange...eigentlich sollte nur je der letzte Absatz,also bis zu letzten Summe, gerechnet werden..

AW: oder noch einfacher
13.10.2014 12:21:00
yummi
Hallo Marc,
dann kopier dir das Makro in deine Datei:

Sub SummeBerechnenVonUnten()
Dim letztezeile As Long
Dim i As Long
Dim bGef As Boolean
'finde letzte Zeile
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'ist letzte Teile  summe
If ActiveSheet.Cells(letztezeile, 1).Value  "Summe" Then
ActiveSheet.Cells(letztezeile + 1, 1).Value = "Summe"
bGef = False
i = letztezeile
Do While bGef = False
If ActiveSheet.Cells(i, 1).Value  "Summe" Then
i = i - 1
Else
bGef = True
End If
Loop
ActiveSheet.Cells(letztezeile + 1, 1).Value = "Summe"
ActiveSheet.Cells(letztezeile + 1, 2).FormulaLocal = "=Summe(B" & i + 1 & ":B" &  _
letztezeile & ")"
End If
End Sub
das berechnet nur die letzte Summe. Ich hatte es anders gemacht, weil du in dienem Beispiel zwischendurch leere Summen hattest.
Gruß
yummi

Anzeige
AW: aha..ähh...hmm?...owT
13.10.2014 15:23:38
Marc
danke danke....jetzt läufts....nur dass oben in der erste Zeile auch schon vorher "Summe" stehen muss...hab ich jetzt per hand eingetragen und die Zeile ausgeblendet...:-)
Hat jemand von euch beiden Lust & Zeit, mir das Marko am telefon zu erklären?
Gruß
Marc

AW: aha..ähh...hmm?...owT
13.10.2014 15:36:11
yummi
Hallo Marc,
welches makro hast du denn jetzt genommen?
Gruß
yummi

AW: aha..ähh...hmm?...owT
13.10.2014 15:38:45
Marc
das letzte von dir...

Erklärung
13.10.2014 16:02:09
yummi
Hallo Marc,
dann kommentier ich mal die zeilen:

Sub SummeBerechnenVonUnten()
Dim letztezeile As Long
Dim i As Long
Dim bGef As Boolean
'finde letzte Zeile
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row      'berechnet letzte benutzete  _
Zeile in Spalte A
'ist letzte Teile  summe
If ActiveSheet.Cells(letztezeile, 1).Value  "Summe" Then       'Steht in der letzten Zeile in  _
Spalte A nicht "Summe"?
ActiveSheet.Cells(letztezeile + 1, 1).Value = "Summe"     'schreibt in Spalte A in die nä _
chste Zeile nach der letzten "Summe"
bGef = False                                   'initialisieren der bool Variablen
i = letztezeile                                'initialisiere der Laufvariable auf  _
letzteZeile
Do While bGef = False                          'solange bGef = false mache
If ActiveSheet.Cells(i, 1).Value  "Summe" Then      'steht in der i.Zeile in Spalte A  _
nicht "Summe"?
i = i - 1                 'laufvariable ein verringern, da wir ja von unten nach  _
oben suchen
Else
bGef = True          'wenn in Zeile i in Spalte A "Summe" gefunden, dann bgef =  _
true, sorgt für das verlassen der do While Schleife
End If
Loop              'ende do while
'in i steht jetzt die zeilennummer, wo das vorige "Summe" gefunden wurde (angenommen 65)
ActiveSheet.Cells(letztezeile + 1, 1).Value = "Summe"      'schreibe in Spalte A in zeile  _
letztezeile+1 (erste freie Zeile) "Summe"
ActiveSheet.Cells(letztezeile + 1, 2).FormulaLocal = "=Summe(B" & i + 1 & ":B" &  _
letztezeile & ")"   Schreibe in selbe Zeile (angenommen 72) Spalte B die Formel =Summe(B66:B71)
End If
End Sub
am besten mal schritt für Schritt mit dem debugger anschauen und die Inhalte der Variablen anzeigen lassen.
Ich hoffe es sind jetzt alle Klarheiten beseitigt ;-)
Gruß
yummi

Anzeige
AW: Erklärung
13.10.2014 16:21:46
Marc
danke danke...aber das ist nun wirklich zu hoch für mich...aber funktioniert auch nicht..hat irgendwie nen Problem mit den letzten Zeilen...?!?!?

AW: Erklärung
13.10.2014 16:28:40
yummi
Hallo Marc,
du solltest das auch nicht laufen lassen, sondern dass was du schon eingebunden hast. Das hier war das selbe nur mit zusätlichen kommentaren für jede zeile. kann sein das die kommentare zu lang sind und das das Forum die zeilenumbrüche nicht richtig macht.
also einfach mal dein laufendes Makro nehmen, den cursor in die sub setzen im VBA Editor (Alt+F11) und mit F8 step by step durchlaufen. Wenn du dann mit dem Mauszeiger über die Variable gehst kannst du sehen was drinsteht. ;-)
Viel spass beim Verstehen
yummi

Anzeige
AW: Summe mit variablem Bereich
13.10.2014 11:20:20
Oberschlumpf
Hi Marc
Ich hab mich auch mal an deiner Frage versucht.
https://www.herber.de/bbs/user/93136.xlsm
Ich hab aber die Halbautomatik mit Strg-s ganz ausgeschaltet.
Anstelle dessen hab ich deine Testdatei nun so aufgebaut, dass...
...nach jedem Eintrag für verkäufer-Nr + Preis automatisch eine leere Zeile hinzugefügt wird
...direkt nach der Leerzeile wird in Spalte A "Summe" eingefügt
...für Spalte B wird zuerst in Spalte A nach dem Wort "Summe" oder "verkäufer-Nr" gesucht
......wenn gefunden, wird die darunter liegende Zeile die Startzeile für die Summenformel
......die Zeile mit dem zuletzt eingetragenen Wert wird die Endzeile für die Summenformel
...nun wird in Spalte B die richtige Summenformel eingetragen
In die jeweils hinzugefügte LEERE Zeile kann bei Bedarf jede schon vorhandene Zwischensumme um weitere Einträge erweitert werden.
Hilfts?
Ciao
Thorsten

Anzeige
AW: Summe mit variablem Bereich
13.10.2014 18:06:49
Oberschlumpf
Hi Marc
Warum passt denn meine Idee nicht?
Du schreibst hier ja gar nix rein...hmm
Ciao
Thorsten

AW: Summe mit variablem Bereich
14.10.2014 07:59:47
Marc
Hi,
ne, läuft super...ohne irgendwelche shortcuts....herlich...DANKE euch!!!
Tolle, schnelle hilfe...
Marc

na, geht doch...wieso nich gleich so?!...owT
14.10.2014 09:15:46
Oberschlumpf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige