Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Summieren solange eine Bedingung erfüllt ist

Betrifft: Summieren solange eine Bedingung erfüllt ist von: Elhana
Geschrieben am: 16.08.2004 09:02:04

Hi,

mein Problem:
ich habe drei Spalten "SWS", "Cp", "Note". Nun sollen solange die kleinsten Noten zusammengezählt werden, bis die Summer alle CP größer oder gleich 18 ist. Wie kann ich das mit dem "Solange" realisieren?

  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Jan
Geschrieben am: 16.08.2004 10:04:34

Hi Elhana,

Was heißt denn "SWS", "Cp"? Mit zwei FOR-Schleifen könnte man solche Aufgaben lösen.
Aber dazu brauch ich genauere Angaben zu de o.g. Begriffen.


Jan


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Dr.
Geschrieben am: 16.08.2004 10:11:07

SWS = Semesterwochenstunden
Cp = Creditpoints

Tipp ich mal.


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Elhana
Geschrieben am: 16.08.2004 10:41:24

Hi,

Dr. hat recht,es handelt sich bei SWS um Zahlen von 1-6, und bei CP um Zahlen von 2-10
Aber kannst du deine Idee näher ausführen, Jan?


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Jan
Geschrieben am: 16.08.2004 10:48:40

Hi Elhana,

Stell mal ein Beispiel ins Forum. Mir fehlt der Zusammenhang zwischen den einzelnen
Spalten.

Jan


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Elhana
Geschrieben am: 16.08.2004 11:16:15

Hi,

Also es geht um Vorlesungen:
jede Vorlseung hat eine bestimmte anzahl an sws und eine bestimmte anzahl an Cp, die man dafür erhält. Außerdem bekommt man am ende vom Semester für die Vorlesung eine Note.

Nun habe ich einen bestimmten Fachbereich, in dem ich mehrere Vorlesungen belegt und entsprechende Noten erhalten habe, sagen wir es sind 10 Vorlesungen.

Nun sollen die besten Noten aus diesen 10 Vorlesungen zusammengezählt werden, aber nur solange, bis die Summe der CP, die zu den jeweiligen Noten (bzw. Vorlesungen) gehören größer oder gleich 18 ist. (Alle Anderen Noten werden nicht berücksichtigt)

Beispiel:
1.Vorles: 2SWS, 3Cp, 2,3
2.Vorles: 1SWS, 2CP, 1,7
3.Vorles: 2SWS, 4CP, 2,0
4.Vorles: 6SWS, 9CP, 2,0
5.Vorles: 3SWS, 4CP, 3,3
6.Vorles: 4SWS, 6CP, 1,3 ...

Hier wäre das gewünschte Ergebnis:
1,3+1,7+2,0+2,0 =7,0 (Summe Noten)
6+2 = 8 <18 => +4=12 <18 => +9=21 > 18 stop!

So, ich hoffe, das genügt...


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Jan
Geschrieben am: 16.08.2004 15:03:48

Hi Elhana,

Ich komme erst in zwei Stunden dazu mich mit dem Problem zu beschäftigen.(Arbeitsberatung)

Wenn bis dahin noch keiner geantwortet hat, melde ich mich wieder mit einer Lösung.


Jan


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Jan
Geschrieben am: 18.08.2004 12:20:54

Hi Elhana,


anbei mal ein VBA-Code für diese Problematik mit Erläuterung.

Sub Noten()
Dim note, z1, z2, s As Integer
' Tabellenbereich nach Noten aufsteigend sortieren
anz = Cells(Rows.Count, 3).End(xlUp).Row
Range("A1:C" & anz).Select
    Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
CP = 0
Do While CP < 19   ' Schleife solange Summe CP kleiner oder gleich 18
    For z = 2 To anz    ' Anfangszeile 2 setzen ; Endbedingung: eingetragene Noten in Spalte C
        note = note + Cells(z, 3) ' Summierung der Noten
        CP = CP + Cells(z, 2)       'Summierung der CP
        If CP > 18 Then             ' CP Summe überprüfen
            Exit For                ' Wenn Bedingung erfüllt, FOR-Schleife verlassen
        End If
    Next                            'Nächste Zeile bis Endbedingung
Loop                                ' Schleifendurchlauf bis Bedingung erfüllt
MsgBox "Notensumme:" & note         'Ergebnis ausgeben
End Sub


Die Ausgangswerte stehen dabei in den Spalten A,B und C.(SWS, CP, Note)


Teste das mal durch!


Jan


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Elhana
Geschrieben am: 18.08.2004 15:58:46

Hi Jan,

danke, werde es gleich mal testen, aber noch ne kleine Frage: wie aktiviere ich den Code denn? Ich möchte keinen Button oder so was benutzen.


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Elhana
Geschrieben am: 20.08.2004 08:22:53

Hi Jan,

im Grunde ist das ja schon gut, was du da vorgeschlagen hast, aber als ich es ausprobierte, da war hinterher meine Tabelle umgeordnet worden, aber das soll nicht sein. Kann man das nicht irgendwie anders machen, so dass die Tabelle auf dem Arbeitsblatt unverändert bleibt?

Könnte man das nicht eventuell mit hilfe von tabellenfunktionen machen, die man in vba aufruft. Also z.B. Dass man diese Formel:

{=SUmme(KKLEINSTE(WENN(...;Wenn(...;...);...);{1;2;3})}

in Vba übernimmt?

Sorry, dass ich erst so spät antworte...


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Jan
Geschrieben am: 20.08.2004 14:56:30

Hi Elhana,

Die Anordnung der Tabelle mit den Monatsdaten muß bei meiner Variante immer
ein gleiches Aussehen haben. Ich hoffe, das Du es möglich machen kannst. Wenn nicht
müßte der Code natürlich noch angepaßt werden, damit Deine Daten nicht falsch zugeordnet werden.

Der Einsatz Deiner vorgeschlagenen Formel unter VBA ist nicht erforderlich, wenn
Dein Tabellenaufbau stimmt.


Jan


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Elhana
Geschrieben am: 16.08.2004 13:37:23

Hat keiner eine Lösung? Es ist leider dringend


  


Betrifft: AW: Summieren solange eine Bedingung erfüllt ist von: Elhana
Geschrieben am: 17.08.2004 15:41:31

Hi,

hast du eine Lösung hinbekommen, jan?
Ich habe auch noch mal probiert, aber so ganz das richtige is es noch net...
wird man denn wohl mit vba machen müssen.
Kann mir dahingehend auch einer helfen?


 

Beiträge aus den Excel-Beispielen zum Thema "Summieren solange eine Bedingung erfüllt ist"