Betrifft: liste ohne dublikate/dynamisch?
von: Helge Kuehn
Hallo nochmal,
heute geht wirklich echt wenig. Sorry ... Ich hab zwei Arbeitsblaetter: "Mainlist" und "Inventory report", in der mainliste stehen Materialnummern (ab D4) mit einer Anzahl (ab K4). Nun moechte ich die Materialnummern in dem Inventory report (ab A4) kopieren, ohne das die Mat-nr dort doppelt aufgefuehrt werden (liste ohne dublikate). Spaeter will ich mit summewenn die Anzahl in dem inventoryreport anzeigen. Mit dem Spezialfilter geht das, leider ist der nicht dynamisch. In die Main kommen taglich neue Artikel (oder auch vorhanden) hinzu. Hat dafuer jmd eine Loesung? Hab schon einiges versucht, bekomme aber nicht das richtige Resultat.
Betrifft: Sverweis .. Liste ohne Duplikate/dynamisch?
von: Mike
Geschrieben am: 05.01.2010 10:18:26
Hey Helge,
solche Listen vergleich ich jeweils mittels Sverweis() und zwar in beiden Listen.
So geht schnell hervor, was noch ergänzt werden muss, ist jedoch nur "halb dynamisch".
Gruss
Mike
Betrifft: AW: Sverweis .. Liste ohne Duplikate/dynamisch?
von: Helge Kuehn
Betrifft: AW: Sverweis .. Liste ohne Duplikate/dynamisch?
von: Helge Kuehn
Sub tt()
Dim oD As Object, rngC As Range
Set oD = CreateObject("Scripting.Dictionary")
With Sheets(1) 'erste Tab lesen
For Each rngC In .Range(.Cells(4, 1), .Cells(Rows.Count, 4).End(xlUp))
If Not oD.exists(rngC.Value) Then
oD.Add rngC.Value, rngC.Value
End If
Next
End With
'Daten eintragen
Sheets(2).Cells(4, 1).Resize(oD.Count) = WorksheetFunction.Transpose(oD.keys)
End Sub
Also ich will das Makro verwenden. Funktioniert soweit, aber ich moechte, das nur die werte aus Spalte D des ersten sheets kopiert werden. wo ist der Fehler ?
Betrifft: AW: Sverweis .. Liste ohne Duplikate/dynamisch?
von: Helge Kuehn
Sub tt()
Dim oD As Object, rngC As Range
Set oD = CreateObject("Scripting.Dictionary")
With Sheets(1) 'erste Tab lesen
For Each rngC In .Range(.Cells(4), .Cells(Rows.Count, 4).End(xlUp))
If Not oD.exists(rngC.Value) Then
oD.Add rngC.Value, rngC.Value
End If
Next
End With
'Daten eintragen
Sheets(2).Cells(1).Resize(oD.Count) = WorksheetFunction.Transpose(oD.keys)
End Sub
Das ist die loesung ... habs doch noch hin bekommen.