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

Stücklistenproblem - VBA

Stücklistenproblem - VBA
Jean
Guten Abend,
in einer Excel-Tabelle1 sind in Spalte A TeileNr, in Spalte B Mengen. Es können Duplikate vorkommen.
Wie kann man per VBA die Anzahl der Unikate ermitteln und die Artikel so in einem zweidimensionalen Array so erfassen, dass jeder Artikel nur einmal auftaucht und die Gesamtmenge pro Artikel ermittelt wird?
Gruß
Jean

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Es sollte VBA sein
14.10.2011 18:20:38
Jean
Hallo Walter,
Du hast mir da 2 wunderbare Lösungen gepostet. Vielen Dank dafür: Sie sind bereits gespeichert.
Leider benötige ich eine VBA-Lösung. Mal sehen ob vielleicht doch noch ein Lösungsvorschlag angezeigt wird.
Ein schönes Wochenende.
Gruß
Jean
Anzeige
AW: Es sollte VBA sein
14.10.2011 23:07:48
CitizenX
Hi Jean,
Option Explicit

Sub sumUnique1()
'Listet die Unikate aus Spalte 1 auf .
'Gibt Die Bezeichnung dieser aus.
'Summiert deren Stückzahlen
'Ausgabe erfolgt im Bereich E:G
Dim i&, lngLast&
Dim oDict As Object, oDict1 As Object
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
Set oDict = CreateObject("scripting.dictionary")
Set oDict1 = CreateObject("scripting.dictionary")
For i = 2 To lngLast
oDict(Cells(i, 1).Value) = oDict(Cells(i, 1).Value) + Cells(i, 3).Value
oDict1(Cells(i, 1).Value) = Cells(i, 2).Value
Next
Cells(2, 5).Resize(lngLast, 3).ClearContents
Cells(2, 5).Resize(oDict.Count, 1) = Application.Transpose(oDict.Keys)
Cells(2, 6).Resize(oDict.Count, 1) = Application.Transpose(oDict1.items)
Cells(2, 7).Resize(oDict.Count, 1) = Application.Transpose(oDict.items)
Set oDict = Nothing
Set oDict1 = Nothing
End Sub


Sub sumUnique2()
'Listet die Unikate aus Spalte 1 auf .
'Summiert deren Stückzahlen
'Ausgabe erfolgt im Bereich E:F
Dim i&, lngLast&
Dim oDict As Object
lngLast = Cells(Rows.Count, 1).End(xlUp).Row
Set oDict = CreateObject("scripting.dictionary")
For i = 2 To lngLast
oDict(Cells(i, 1).Value) = oDict(Cells(i, 1).Value) + Cells(i, 3).Value
Next
Cells(2, 5).Resize(lngLast, 2).ClearContents
Cells(2, 5).Resize(oDict.Count, 1) = Application.Transpose(oDict.Keys)
Cells(2, 6).Resize(oDict.Count, 1) = Application.Transpose(oDict.items)
Set oDict = Nothing
End Sub

Grüße
Steffen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige