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

VBA - mehrfach vorkommende Einträge listen

VBA - mehrfach vorkommende Einträge listen
11.12.2016 14:25:27
Fred
Hallo Excel-Experten,
… das wird wohl nur über VBA umsetzbar sein.
Ich habe eine Liste in Tabellenblatt „Basis“
Ich möchte aus dieser Liste den jeweils ersten Eintrag aller mehrfach vorkommenden Einträge in Tabellenblatt „Auswahl“ kopiert bekommen.
Das Kriterium für die "mehrfache Auswahl" ist in Spalte "B"
Um es etwas verständlicher zu machen, habe ich eine einfach gehaltene Beispiel-Mappe angefügt.
https://www.herber.de/bbs/user/109986.xlsm
Kann mir jemand dabei helfen, dieses in VBA umzusetzen?
Gruß
Fred

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - mehrfach vorkommende Einträge listen
11.12.2016 14:42:43
Gerd
Hallo Fred!
Sub Unikate_aus_B()
Dim Q As Worksheet, Z As Worksheet
Set Q = Worksheets("Basis"): Set Z = Worksheets("Auswahl")
Q.Cells(1, 1).CurrentRegion.Offset(1).Copy Z.Cells(2, 1)
Z.Cells(1, 1).CurrentRegion.Offset(1).RemoveDuplicates 2, xlNo
Set Q = Nothing: Set Z = Nothing
End Sub
Gruß Gerd
AW: VBA - mehrfach vorkommende Einträge listen
11.12.2016 14:54:46
Fred
Hallo Gerd,
das VBA funzt,- allerdings werden alle Einträge einmalig in "Auswahl" kopiert.
Ich wollte eigentlich, das nur die mehrfach vorkommenden Einträge (aus "Basis") einmalig in Blatt "Auswahl" kopiert werden.
Gibt es dafür auch eine Lösung?
Gruß
Fred
Anzeige
AW: VBA - mehrfach vorkommende Einträge listen
11.12.2016 17:05:48
Gerd
Hallo Fred,
dann statt Hilfsspalte mit Formel ein paar Codezeilen mehr.

Sub Primus_aus_Duplikaten_B()
Dim Q As Worksheet, Z As Worksheet, U As Range, lngRow As Long, lngLZ As Long
Set Q = Worksheets("Basis"): Set Z = Worksheets("Auswahl")
lngLZ = Q.Cells(Q.Rows.Count, 2).End(xlUp).Row
With WorksheetFunction
For lngRow = 2 To lngLZ
If .CountIf(Q.Range(Q.Cells(2, 2), Q.Cells(lngRow, 2)), Q.Cells(lngRow, 2).Value) = 1  _
And _
.CountIf(Q.Range(Q.Cells(2, 2), Q.Cells(lngLZ, 2)), Q.Cells(lngRow, 2).Value) > 1  _
Then
If U Is Nothing Then Set U = Q.Cells(lngRow, 1).Resize(1, 8) Else _
Set U = Union(U, Q.Cells(lngRow, 1).Resize(1, 8))
End If
Next
End With
If Not U Is Nothing Then
U.Copy Z.Cells(2, 1)
Set U = Nothing
End If
Set Q = Nothing: Set Z = Nothing
End Sub
Gruß Gerd
Anzeige
Danke Gerd
11.12.2016 17:12:48
Fred
Hallo Gerd,
genau so wollte ich das Ergebnis der mehrfachen Einträge erzielen.
Tolle Arbeit!
Schönen Sonntag noch
mfG
Fred
AW: VBA - mehrfach vorkommende Einträge listen
11.12.2016 18:14:46
Werner
Hallo Fred,
du hast zwar schon eine geänderte, funktionierende Version von Gerd, aber da ich mich auch schon hingesetzt habe, stelle ich meine Version auch noch ein.
@Gerd: Hoffe du bist jetzt nicht sauer, weil ich an deninem Code rumgepfuscht habe.
Sub Unikate_aus_B()
Dim i As Long
Dim ii As Long
Dim Q As Worksheet, Z As Worksheet
Set Q = Worksheets("Basis"): Set Z = Worksheets("Auswahl")
With Z
ii = .Cells(.Rows.Count, 2).End(xlUp).Row
If ii > 1 Then
.Range(.Cells(2, 1), .Cells(ii, 8)).ClearContents
End If
End With
With Q
For i = 2 To Q.Cells(Rows.Count, 2).End(xlUp).Row
ii = Z.Cells(Rows.Count, 2).End(xlUp).Offset(1).Row
If WorksheetFunction.CountIf(.Columns(2), .Cells(i, 2)) > 1 Then
.Range(.Cells(i, 1), .Cells(i, 8)).Copy Z.Cells(ii, 1)
End If
Next i
End With
Z.Cells(1, 1).CurrentRegion.Offset(1).RemoveDuplicates 2, xlNo
Application.CutCopyMode = False
Set Q = Nothing: Set Z = Nothing
End Sub
Gruß Werner
Anzeige
AW: Nee, Alternativen gibts fast immer o.r.T.
11.12.2016 19:12:29
Gerd
Hallo Werner,
Gruß Gerd

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige