Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1620to1624
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

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

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige