Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Schleifen und unterschleifen

Forumthread: Schleifen und unterschleifen

Schleifen und unterschleifen
02.05.2018 21:44:11
Carsten
Hallo VBA-Gemeinde,
ich versuche in EXCEL-VBA eine Datentabelle auszuwerten.
Bei der Datentabelle handelt es sich um eine Liste mit
Spalte A ==> Artikelnummer
Spalte B ==> Datum
Spalte C ==> Nummer
Spalte D ==> Lager
Spalte E ==> Menge
Jede Artikelnummer hat eine unterschiedliche Anzahl an Belegen und obendrein mit unterschiedlichen Belegtypen.
Ziel ist es pro Belegtyp ab Spalte G in der Zeile der Artikelnummer die Summen der Belegmenge zu bilden.
Mein Skript beinhalte den ersten Teil.
....
Sub Kennziffer()
Dim a As Integer            ' Zeilennummer erste beschriebene Zelle
Dim b As Integer            ' Zähler 2. Do-Loop-Schleife
Dim c As Integer            ' Zeilennummer letzte beschriebene Zelle
Dim myRangeSuche As Range   ' Suchbereich
Dim myRangeWerte As Range   ' Wertebereich
Dim sumSI As Double         ' SI-Belege
Dim sumSO As Double         ' SO-Belege
Dim Ende As Long            ' Datenende
' letzte Zeile ermitteln | Datensatzende
With ActiveSheet
Ende = .Cells(Rows.Count, 3).End(xlUp).Row
End With
' erste gefüllte Zelle im Bereich finden
a = 2
Do While Range("C" & a) = ""
a = a + 1
Loop
'letzte gefüllte Zelle im Bereich finden
b = a
Do While Range("C" & b)  ""
b = b + 1
Loop
c = b - 1
'Wertedefinition im Bereich
Set myRangeSuche = Range("C" & a, "C" & c)
Set myRangeWerte = Range("E" & a, "E" & c)
' SI-Summe vom Bereich bilden
sumSI = WorksheetFunction.SumIf(myRangeSuche, "SI", myRangeWerte)
Cells(a - 1, 7).Value = sumSI
' SO-Summe vom Bereich bilden
sumSO = WorksheetFunction.SumIf(myRangeSuche, "SO", myRangeWerte)
Cells(a - 1, 8).Value = sumSO
End Sub

....
Hier wird der erste Block ausgewertet, d.h. mithilfe von zwei separaten Schleifen. Diue erste such den Beginn des Datenblocks und die zweite das Ende.
Somit konnte ich in myRange den Such- und Wertebereich festlegen.
Nun hänge ich fest und hoffe auf Eure Unterstützung.
Mir ist bewußt das nun nocxh eine übergeordnete Schleife vorgesetzt werden muss. Denn das Skript ist die Abhandlung der Berechnung des inneren Datenbereiches.
Kann einer mir erkläre, besser ein Beispiel geben, wie ich die vorgeschaltete Schleife einbaue? Was für eine Schleife nehme ich? Ich glaube eine For-Next wäre hier angebracht.
Die xlsm kann ich auch senden per PN.
Vielen Dank an Euch und schönen Abend
Carsten
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleifen und unterschleifen
02.05.2018 21:55:15
Sepp
Hallo Carsten,
gruseliger Code!
Warum per VBA? Das geht doch leicht per Formeln, Pivot oder PowerQuerry.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
AW: Schleifen und unterschleifen
02.05.2018 21:59:50
Carsten
Hallo Sepp,
danke für deine ehrliche Meinung.
Ich weiß der Code ist nicht perfekt und noch ausbaufähig.
An eine PIVOT habe ich auch schon gedacht. Ich habe die Befürchtung das die z.Z. 63500 Zeilen in einer Pivot-Tab. nicht beherschbar sind.
Hast du eine Beispiel-Pivot?
Gruß Carsten
Anzeige
AW: Schleifen und unterschleifen
02.05.2018 22:25:25
Sepp
Hallo Carsten,
wieso sollte ich ein Beispiel hochladen?
Du solltest eine aussagekräftige Beispielmappe hochladen, dann wird sich schon jemand darum kümmern.
 ABCDEF
1Gruß Sepp
2
3

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige