Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
924to928
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
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Doppelte Einträge filtern

Doppelte Einträge filtern
19.11.2007 08:07:00
Hans
Hallo
Kann mir jemand helfen.
Ich verwende eine Filter über ein Makro der mir doppelte Einträge filtert.
Die Einträge stehen in Spalte A. Vor dem filtern muss ich Spalte A markieren. Das Ergebnis steht dann in Spalte B.
Kann man die Funktion so verändern, dass man in Spalte C u. D oder E u. F....... auch den Filter
verwenden kann.
Ist es auch möglich, dass sich die Liste in Tabelle1 befindet, und man mit einer Schaltfäche von Tabelle2 aus die Liste filtern kann.
Das Makro:
Sub Onlys()
Dim arr() As Variant
Dim arrOnlys As Variant
Dim iRow As Integer, iCount As Integer
iCount = Selection.Cells.Count
If iCount = 1 Then
Beep
MsgBox "Sie müssen mindestens 2 Zellen auswählen!"
Exit Sub
End If
ReDim arr(1 To iCount)
For iRow = 1 To iCount
arr(iRow) = Selection.Cells(iRow).Value
Next iRow
arrOnlys = GetOnlys(arr)
Columns(2).ClearContents
For iRow = 1 To UBound(arrOnlys)
Cells(iRow, 2).Value = arrOnlys(iRow)
Next iRow
End Sub



Private Function GetOnlys(arr As Variant) As Variant
Dim col As New Collection
Dim arrNew()
Dim iRow As Integer
On Error Resume Next
For iRow = LBound(arr) To UBound(arr)
col.Add Item:=arr(iRow), key:=arr(iRow)
Next iRow
On Error GoTo 0
ReDim Preserve arrNew(1 To col.Count)
For iRow = 1 To col.Count
arrNew(iRow) = col(iRow)
Next iRow
GetOnlys = arrNew
End Function


2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Doppelte Einträge filtern
19.11.2007 09:45:00
Erich
Hallo Hans,
probier mal

Sub Onlys()
Dim arr() As Variant
Dim arrOnlys As Variant
Dim lRow As Long, liCount As Long, iCol As Integer
liCount = Selection.Cells.Count
If liCount = 1 Then
Beep
MsgBox "Sie müssen mindestens 2 Zellen auswählen!"
Exit Sub
End If
If Selection.Columns.Count > 1 Then
Beep
MsgBox "Sie dürfen nur Zellen einer Spalte markieren!"
Exit Sub
End If
iCol = Selection.Column + 1
ReDim arr(1 To liCount)
For lRow = 1 To liCount
arr(lRow) = Selection.Cells(lRow).Value
Next lRow
arrOnlys = GetOnlys(arr)
Columns(iCol).ClearContents
For lRow = 1 To UBound(arrOnlys)
Cells(lRow, iCol).Value = arrOnlys(lRow)
Next lRow
End Sub
Private Function GetOnlys(arr As Variant) As Variant
Dim col As New Collection
Dim arrNew()
Dim lRow As Long
On Error Resume Next
For lRow = LBound(arr) To UBound(arr)
col.Add Item:=arr(lRow), key:=arr(lRow)
Next lRow
On Error GoTo 0
ReDim Preserve arrNew(1 To col.Count)
For lRow = 1 To col.Count
arrNew(lRow) = col(lRow)
Next lRow
GetOnlys = arrNew
End Function

Variablen für Zeilen sollten nicht Integer, sondern Long sein.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Doppelte Einträge filtern
19.11.2007 19:42:00
Hans
Hallo Erich
Ich habe das Makro von dir gestartet. Ich kann jetzt in jeder Spalte filtern.
Ist genau das Makro, dass ich wollte.
Tut mir leid, dass ich mich so spät melde, ich war den ganzen Tag nicht zuhause.
Nochmal herzlichen Dank für deine Hilfe!
Mit freundlichen Grüssen
Hans

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige