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

Addition bei versch. Reihenfolge & Anzahl

Addition bei versch. Reihenfolge & Anzahl
19.09.2017 12:38:09
Laura
Hallo liebe Community,
ich brauche eure Hilfe bei einem Makro, da ich mich leider nicht wirklich mit VBA Schleifen auskenne.
Eigentlich geht es um simple Addition, die nur dadurch kompliziert wird, dass sich Reihenfolge und Anzahl der Werte ändern.
Schwierig zu erklären, ich hoffe mit dem angehängten Beispiel wird es klar.
https://www.herber.de/bbs/user/116362.xlsx
Ich möchte die einzelnen Gewichte addieren bis "neu" und in eine Zusammenfassung schreiben lassen.
Nach dem Motto:
Zähle bis in Spalte F "neu"
dann addiere E (summe)
bis in F wieder "neu"
Schreibe neu 1 und summe in Bereich XX
....
Hoffe es ist verständlich und ihr könnt mir vielleicht helfen.
Vielen Dank vorab!
SG

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Addition bei versch. Reihenfolge & Anzahl
19.09.2017 15:13:24
Sepp
Hallo Laura,
warum VBA?
Beleg

 ABCDEFGHIJKLMN
1              
2              
3UhrzeitAnzahlGrößeGewichtGesamtgewichtSumme  Zusammenfassung     
4          Gesamtgewicht   
5 18451414,8425467,12   Alt 46159,89 4 
6 7652956,1120692,7746159,89  neu 1 47827,59 7 
720:04:44neu      neu 2 61671,165 10 
8 9652956,1126604,99   neu 3 66140,09 12 
9 15451414,8421222,647827,59  neu 4 79865,768 14 
1021:04:17neu      neu 5 36224,25 19 
11 6935893,78561671,16561671,165  neu 6 7796,55 22 
1222:31:18neu      neu 7 36237,82 24 
13 7435893,78566140,0966140,09      27 
1422:31:18neu          27 
15 5536827,70645523,83       27 
16 8451414,8411318,72       27 
17 1960760,46214448,778         
18 2025428,7228574,4479865,768    381923,123   
1922:40:22neu            
20 15552009,5430143,1         
21 1526405,416081,1536224,25        
2223:01:07neu      Kontrolle!     
23 2520311,8627796,557796,55        
2423:15:09neu            
25 3020311,8629355,86         
26 19451414,8426881,9636237,82        
27              
28    381923,123381923,123        
29              

Formeln der Tabelle
ZelleFormel
F5=WENN(ISTZAHL(VERGLEICH(ZEILE()+1;$M$6:$M$16;0)); SUMME(INDEX(E:E;KKLEINSTE($M$5:$M$16;ANZAHL($F$4:F4)+1)):INDEX(E:E;KKLEINSTE($M$5:$M$16;ANZAHL($F$4:F4)+2))); "")
K5=SUMME(E4:INDEX(E:E;M6-1))
F6=WENN(ISTZAHL(VERGLEICH(ZEILE()+1;$M$6:$M$16;0)); SUMME(INDEX(E:E;KKLEINSTE($M$5:$M$16;ANZAHL($F$4:F5)+1)):INDEX(E:E;KKLEINSTE($M$5:$M$16;ANZAHL($F$4:F5)+2))); "")
I6=WENN(M6=VERGLEICH(0;B:B;-1)+1;"";INDEX(B:B;M6)&" "&ZEILE(A1))
K6=WENN(M6=VERGLEICH(0;B:B;-1)+1;"";SUMME(INDEX(E:E;M6):INDEX(E:E;MIN(M7-1;999))))
M6=WENNFEHLER(AGGREGAT(15;6;ZEILE($A$4:$A$999)/(ISTTEXT($B$4:$B$999)); ZEILE(A1)); VERGLEICH(0;B:B;-1)+1)


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Spalte M kann ausgeblendet werden.
https://www.herber.de/bbs/user/116365.xlsx
Gruß Sepp

Anzeige
AW: Addition bei versch. Reihenfolge & Anzahl
19.09.2017 15:41:52
Laura
Hallo Sepp,
Wow, hätte nicht gedacht, dass das mit Formeln umsetzbar ist. Funktioniert wie angefragt, vielen Dank also auf jedenfall schon einmal dafür!
Für mich wäre es noch schöner, wenn das ganze nur auf Knopfdruck erscheint und nicht permanent vorhanden ist, deshalb dachte ich an ein VBA.
Vielleicht kennst du/jemand anders eine Lösung mit VBA?
SG
AW: Addition bei versch. Reihenfolge & Anzahl
19.09.2017 16:08:08
Sepp
Hallo Laura,
auch kein Problem.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub laura()
Dim varOut1 As Variant, varOut2 As Variant
Dim lngIndex As Long, lngLast As Long, lngStart As Long, lngN As Long

With Sheets("Beleg")
  lngLast = Application.Max(4, .Cells(.Rows.Count, 2).End(xlUp).Row) + 1
  Redim varOut1(1 To lngLast, 1 To 1)
  Redim varOut2(1 To Application.CountIf(.Range("B4:B" & lngLast), "neu") + 1, 1 To 3)
  lngStart = 4
  For lngIndex = 4 To lngLast
    If .Cells(lngIndex, 2) = "neu" Or lngIndex = lngLast Then
      varOut1(lngIndex - 4, 1) = Application.Sum(.Range(.Cells(lngStart, 5), .Cells(lngIndex - 1, 5)))
      lngStart = lngIndex
      lngN = lngN + 1
      varOut2(lngN, 1) = IIf(lngN = 1, "alt", "neu " & lngN - 1)
      varOut2(lngN, 3) = varOut1(lngIndex - 4, 1)
    End If
  Next
  .Range("F4:F" & lngIndex) = varOut1
  .Range("I5").Resize(UBound(varOut2, 1), 3) = varOut2
End With
End Sub

Gruß Sepp

Anzeige
Kleiner Fehler in Code!
19.09.2017 16:33:40
Sepp
Hallo Laura,
nimm diesen hier:
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub laura()
Dim varOut1 As Variant, varOut2 As Variant
Dim lngIndex As Long, lngLast As Long, lngStart As Long, lngN As Long

With Sheets("Beleg")
  lngLast = Application.Max(4, .Cells(.Rows.Count, 2).End(xlUp).Row) + 1
  Redim varOut1(1 To lngLast, 1 To 1)
  Redim varOut2(1 To Application.CountIf(.Range("B4:B" & lngLast), "neu") + 1, 1 To 3)
  lngStart = 4
  For lngIndex = 4 To lngLast
    If .Cells(lngIndex, 2) = "neu" Or lngIndex = lngLast Then
      varOut1(lngIndex - 4, 1) = Application.Sum(.Range(.Cells(lngStart, 5), .Cells(lngIndex - 1, 5)))
      lngStart = lngIndex
      lngN = lngN + 1
      varOut2(lngN, 1) = IIf(lngN = 1, "alt", "neu " & lngN - 1)
      varOut2(lngN, 3) = varOut1(lngIndex - 4, 1)
    End If
  Next
  .Range("F4").Resize(UBound(varOut1, 1), 1) = varOut1
  .Range("I5").Resize(UBound(varOut2, 1), 3) = varOut2
End With
End Sub

Gruß Sepp

Anzeige
AW: Kleiner Fehler in Code!
20.09.2017 08:30:41
Laura
Das funktioniert tadellos ! Ich danke dir vielmals für die tolle Hilfe !!! :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige