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

Duplikate entfernen

Duplikate entfernen
20.06.2015 16:19:34
wizard

Hallo,
ich habe eine Tabelle mit Runde 70.000 Zeilen und 8000 Spalten. In der ersten Spalte steht eine eindeutige Kennummer, die restlichen Zeilen sind Kurswerte. Leider sind manche Kennumern doppelt, so dass ich mit der Funktion "Duplikate entfernen" die löschen wollte. wenn ich das machen werden aber nicht alle Zeilen gelöscht??? Wenn ich jedoch nur die erste Spalte testweise in ein seperates Tabellenblatt kopieren funktioniert das Duplikate entfernen reibungslos. Woran kann das liegen? Bräuichte dringend Hilfe. Danke vorab. LG

28
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Duplikate entfernen
20.06.2015 16:21:10
wizard
Könnte mir jemand mit nem VBA weiterhelfen wenn das besser läuft?

dazu die Option nur auf die 1. Spalte belassen ...
20.06.2015 16:30:58
der neopa C
Hallo,
... nach Aktivierung der Funktion die Häkchen bei den anderen Spalten einfachen herausnehmen.
Gruß Werner
.. , - ...

AW: dazu die Option nur auf die 1. Spalte belassen ...
20.06.2015 16:32:16
wizard
Hab ich gemacht total seltsam....

und? mit Erfolg ? owT
20.06.2015 16:34:52
der neopa C
Gruß Werner
.. , - ...

AW: und? mit Erfolg ? owT
20.06.2015 18:27:28
wizard
Leider nicht

kann ich so nicht nachvollziehen ... und ...
20.06.2015 19:13:38
der neopa C
Hallo,
... teste doch zunächst mal mit einem "überschaubaren" Datenbereich von sagen wir wenigen 100 Datenzeilen. Ist es da auch schon nicht erfolgreich, dann lade diese Auszug doch mal als Datei hier hoch.
Wenn jedoch erfolgreich, dann vergrößere den auszuwertenden Bereich auf z.B. 5000 Datensätze und teste erneut etc.
Aber vielleicht gibt es ja eine Grenze bzgl. der auszuwertenden Datensatzanzahl für diese Funktion. Dazu schau mal hier: http://www.xlam.ch/xlimits/, vielleicht findet sich da schon ein entsprechender Hinweis.
Gruß Werner
.. , - ...

Anzeige
AW: kann ich so nicht nachvollziehen ... und ...
20.06.2015 20:20:50
wizard
Hier mal die Beispieldatei. Eigentlich dürfte ja nur eine Zeile übrig bleiben wenn nach der ersten Spalte entfernt wird. Es bleiben unerklärlicherweise aber 2 Zeilen stehen???
https://www.herber.de/bbs/user/98332.xlsx

wie bereits vermutet; ein Excelgrenzwert ...
21.06.2015 17:13:24
der neopa C
Hallo,
... verhindert die korrekte Wirkungsweise. Wie ich durch einfache Test eben herausgefunden habe, liegt die Grenze der max. mit berücksichtigten Spalten offensichtlich bei 500 (Spalte SF). Du willst jedoch über 4200 berücksichtigen. Da spielt diese Excelfunktion nicht mehr mit (denn wer braucht soviel Spalten sonst schon) ;-) Auf die Schnelle konnte ich den Grenzwert auch in http://www.xlam.ch/xlimits/ nicht finden.
Wenn Dein Problem ein einmaliges oder seltenes wäre, hätte ich alternativ zu den angebotenen Makros zu einer einfachen wie schnellen Methode geraten:
Vor Spalte A eine Spalte einfügen. In A1 folgende Formel einschreiben: =ZÄHLENWENN(B$2:B2;B2)=1
Diese durch Doppelklick in die rechte untere Zellenecke bis zum Datenende kopeiren lassen und dann die Spalte A nach FALSCH filtern die gefilterten Zeilen markieren und löschen und danach den Autofilter wieder aufheben und Spalte A löschen und ... ferdsch
Gruß Werner
.. , - ...

Anzeige
AW: wie bereits vermutet; ein Excelgrenzwert ...
21.06.2015 20:46:40
Josef B
Hallo
Die Begrenzung der Spaltenzahl scheint in VBA nicht zu existieren.
Auf jeden Fall funktioniert das Entfernen der Duplikate mittels VBA in der Beispielmappe
Sub doppelte loeschen()
ActiveSheet.Range("$A$1:$FEP$80000").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
Gruss Sepp

wäre ja auch fatal, wenn ...
22.06.2015 09:45:30
der neopa C
Hallo Sepp,
... es bei der VBA-Lösung einen derartige Grenzwert gäbe, oder.
Bei der Standardfunktion dagegen kann ich auch nicht ausschließen, dass es zusätzlich noch einen Grenzwert bzgl. der max. auszuwertenden Datensatzzahl gibt. Wäre sicherlich für Philipp auch interessant zu wissen.
Gruß Werner
.. , - ...

Anzeige
AW: Duplikate entfernen
20.06.2015 16:38:41
Sepp
Hallo Christopher,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub removeDuplikates()
  Dim lngLast As Long
  Dim rng As Range
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = -4135
    .DisplayAlerts = False
  End With
  
  With ActiveSheet
    lngLast = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
    
    .Columns(1).Insert
    
    With .Range(.Cells(2, 1), .Cells(lngLast, 1))
      .Formula = "=IF(COUNTIF($B$2:$B2,B2)=1,ROW(),""XXX"")"
      .Value = .Value
    End With
    On Error Resume Next
    Set rng = .Columns(1).SpecialCells(2, 2)
    If Not rng Is Nothing Then rng.EntireRow.Delete
    Err.Clear
    On Error GoTo ErrExit
    
    .Columns(1).Delete
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'removeDuplikates'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Prozedur - removeDuplikates"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
    .StatusBar = False
  End With
  
  Set rng = Nothing
End Sub


PS.: Hat sich dein letztes Problem erledigt? Läuft der Import?
Gruß Sepp

Anzeige
AW: Duplikate entfernen
20.06.2015 16:53:54
wizard
Merci nochmal fürs letzte mal. Hatt wunderbar geklappt =)
Ich lass das VBA gerade mal durchlaufen. Fürs Verständnis: Nehmen wir an in Zeile 1 und Zeile 33 ist der gleiche Wert, welche Zeile wirft er dann raus? ich nehme an die Zeile 33 wenn ich mir das Script anschaue oder?

AW: Duplikate entfernen
20.06.2015 18:04:20
Sepp
Hallo Christopher,
ja genau, der erste Datensatz bleibt erhalten, die anderen fliegen raus.
Gruß Sepp

AW: Duplikate entfernen
20.06.2015 18:49:02
wizard
Bringt es was wenn ich die Datei vorher sortiere? Prozess läuft immer noch...

AW: Duplikate entfernen
20.06.2015 18:04:41
wizard
Das Script läuft jetzt schon eine Stunde. Müsste es nicht schneller gehen wenn nur die erste Spalte geprüft wird?

Anzeige
AW: Duplikate entfernen
20.06.2015 19:32:59
Sepp
Hi,
70.000 Zeilen sind schon heftig! Dieser Code schaft auf meinem betagten Laptop die 70.000 Zeilen und 33.000 gelöschte Datensätze in 6 Minuten.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub removeDuplikates()
  Dim lngLast As Long, lngI As Long
  Dim vntDel As Variant, rng As Range
  Dim lngCalc As Long
  Dim t As Double
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = -4135
    .DisplayAlerts = False
  End With
  
  t = Now
  Debug.Print t
  
  With ActiveSheet
    lngLast = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
    
    .Columns(1).Insert
    
    vntDel = .Range(.Cells(2, 1), .Cells(lngLast, 1))
    For lngI = 1 To UBound(vntDel, 1)
      If Application.CountIf(.Range(.Cells(2, 2), .Cells(lngI, 2)), .Cells(lngI, 2)) > 1 Then
        vntDel(lngI, 1) = "XXX"
      End If
    Next
    
    .Range(.Cells(2, 1), .Cells(lngLast, 1)) = vntDel
    
    On Error Resume Next
    Set rng = .Columns(1).SpecialCells(2, 2)
    If Not rng Is Nothing Then rng.EntireRow.Delete
    Err.Clear
    On Error GoTo ErrExit
    
    .Columns(1).Delete
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'removeDuplikates'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Prozedur - removeDuplikates"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  Debug.Print Now - t
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
    .StatusBar = False
  End With
  
  Set rng = Nothing
End Sub


Gruß Sepp

Anzeige
AW: Duplikate entfernen
20.06.2015 19:45:53
wizard
Hmhm dann stimmt was nicht... hab 16gb Arbeitsspeicher und der Prozessor sollte das eigentlich auch recht schnell schaffen.

ist aber ein anderer Code! o.T.
20.06.2015 19:47:48
Sepp
Gruß Sepp

AW: ist aber ein anderer Code! o.T.
20.06.2015 20:24:42
wizard
Also beide Codes gehen normalerweise schon hab es probiert. Nur in meiner Datei nicht und in eine neue Datei kopieren bringt auch nichts. Hier mal eine Testdatei:
https://www.herber.de/bbs/user/98333.xlsx

AW: ist aber ein anderer Code! o.T.
20.06.2015 20:26:04
wizard
Sorry in der Datei die ich zuvor gepostet habe geht es. Das hier ist aber das richtige Beispiel:
https://www.herber.de/bbs/user/98332.xlsx

Anzeige
AW: Duplikate entfernen
20.06.2015 22:43:53
Josef B
Hallo
Hier ein sehr schneller Code von Uwe Küstner, gefunden bei:
http://www.online-excel.de/excel/singsel_vba.php?f=117
Ich habe das nun auf deine Bedürfnisse angepasst.
Wenn du bei der Rückfrage "Dubletten löschen" auf Nein klickst, bricht der Code ab, aber die Dubletten der Spalte A bleiben markiert.
Sub DoppelteEintraegeLoeschen()
Dim colUnique As New Collection
Dim lngAbZeile As Long
Dim lngArr As Long
Dim lngC As Long
Dim lngCalc As Long
Dim lngDup As Long
Dim lngMaxArrays As Long
Dim lngZ As Long
Dim lngZeile As Long
Dim lngZeilenArray As Long
Dim lngZeilenBereich As Long
Dim rngArea As Range
Dim rngAuswahl As Range
Dim rngC As Range
Dim rngDel() As Range
Dim rngSel As Range
Dim strSuchbereich As String
Dim strZeile As String
Dim varAuswahl() As Variant
Dim varC As Variant
Set rngSel = Columns(1)
lngZeilenBereich = ActiveSheet.UsedRange.Rows.Count
On Error GoTo FehlerBehandlung
lngCalc = Application.Calculation
Set rngAuswahl = _
Application.Intersect(Columns(1), ActiveSheet.UsedRange)
strSuchbereich = rngAuswahl.Address(0, 0)
lngAbZeile = 1
Set rngAuswahl = _
Application.Intersect(Rows(lngAbZeile & ":" & lngZeilenBereich), rngSel)
lngZeilenArray = lngZeilenBereich - lngAbZeile + 1
rngAuswahl.Select
lngArr = 1
ReDim rngDel(lngArr)
lngMaxArrays = lngZeilenBereich / 50
strSuchbereich = rngAuswahl.Address(0, 0)
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
For Each rngArea In rngAuswahl.Areas
For Each rngC In rngArea.Columns
lngC = lngC + 1
ReDim Preserve varAuswahl(1 To lngC)
varAuswahl(lngC) = rngC.Value
Next rngC
Next rngArea
colUnique.Add 0, "" 'wenn 1. Leerzeile auch berücksichtigt werden soll
For lngZeile = 1 To lngZeilenArray
strZeile = ""
For lngZ = 1 To lngC
strZeile = strZeile & CStr(varAuswahl(lngZ)(lngZeile, 1))
Next lngZ
colUnique.Add lngZeile, strZeile
Next lngZeile
Set rngDel(0) = rngDel(1)
lngArr = lngArr + (rngDel(lngArr) Is Nothing)
If lngArr > 1 Then
For lngZ = 2 To lngArr
Set rngDel(0) = Application.Union(rngDel(0), rngDel(lngZ))
Next lngZ
End If
lngDup = rngDel(0).Cells.Count / 16384
Application.Intersect(rngSel, rngDel(0)).Select
Application.ScreenUpdating = True
If MsgBox("Es wurden " & lngDup & " Duplikate im Bereich" & vbLf & _
strSuchbereich & vbLf & _
"gefunden." & vbLf & vbLf & "Sollen sie jetzt gelöscht werden?", _
vbQuestion Or vbYesNo Or vbDefaultButton2) = vbYes Then
Application.ScreenUpdating = False
For lngZ = lngArr To 1 Step -1
rngDel(lngZ).Delete
Next lngZ
rngSel.Select
Application.ScreenUpdating = True
End If
FehlerBehandlung:
Select Case Err.Number
Case 457
If rngDel(lngArr) Is Nothing Then
Set rngDel(lngArr) = Rows(lngZeile + lngAbZeile - 1)
Else
Set rngDel(lngArr) = _
Application.Union(rngDel(lngArr), Rows(lngZeile + lngAbZeile - 1))
End If
If rngDel(lngArr).Areas.Count = lngMaxArrays Then
lngArr = lngArr + 1
ReDim Preserve rngDel(lngArr)
End If
Resume Next
Case 13, 91
MsgBox "Im Bereich" & vbLf & vbLf & """" & _
strSuchbereich & """" & vbLf & vbLf & "gibt es keine Duplikate."
Case Is > 0
MsgBox "Fehlernummer: " & Err.Number & vbLf & vbLf & _
"Felerbeschreibung: " & Err.Description
End Select
Application.Calculation = lngCalc
End Sub
Gruss Sepp

Anzeige
AW: Duplikate entfernen
22.06.2015 10:42:06
Daniel
Hi
wenn ich per Makro das Dupliate-Entfernen ausführe, dann funktioniert es mit mit deinen Beipspieldateien.
ich vermute mal, das das Problem im Eingabeassistenten liegt, der mit sovielen Spalten nicht zurecht kommt und fehlerhafte Informationen übergibt, welche Spalten ´für die Duplikatsprüfung relevant sind.
alternativ probiere mal folgendes vorgehen:
1. Tabelle nach Spalte A sortieren
2. in einer Hilfsspalte ab Zeile 2 folgende Formel einfügen: =Wenn(A2=A1;1;"")
3. Hilfsspalte kopieren und als Wert einfügen
4. Tabelle nach der Hilfsspalte sortieren (muss nicht sein, macht das ganze schneller)
5. in der Tabelle alle Zeilen, die in der Hilfsspalte eine 1 enthalten löschen (autofilter, oder über Inahlte auswählen - Zahlen)
Gruß Daniel

Anzeige
warum vermutest Du da nur? ....
22.06.2015 12:06:07
der neopa C
Hallo Daniel,
... das es bei der Funktion zumindest einen Grenzwert bzgl. der Anzahl der max. zu verarbeitenden Spaltenanzahl (500) gibt, habe ich doch bereits gestern hier im thread herausgearbeitet.
Gruß Werner
.. , - ...

AW: warum vermutest Du da nur? ....
22.06.2015 15:32:57
Daniel
Hi Werner
weil deine Herausarbeitung meiner Ansicht nach falsch ist.
du lokalisierst den Fehler in der Excelfunktion selbst.
Allerdings funktioniert das Duplikatentfernen auch mit den kompletten 4200 Spalten, wenn man es per Makro ausführt.
Range("1:3").RemoveDuplicates 1, xlno

liefert das richtig Ergebnis und lässt in den Beispieldateien nur die erste Zeile stehen.
dh, die Funktion "Duplikate entfernen" funktioniert richtig, auch mit beliebiger Spaltenzahl.
Das Problem ist, dass im Eingabeassistenen zunächst mal alle Spalten als relevant angecheckt sind und diese dann erstmal aufgehoben werden müssen über den entsprechenden Button.
Dieser Button hebt aber nur die Häkchen der ersten 500 Spalten auf aber nicht mehr die folgenenden, die Häkchen ab dem 501. bleiben gesetzt.
Wie gesagt, das Duplikateentfernen an sich kann mit beliebig grossen Datenmengen umgehen, man muss es aber per Makro ausführen, weil der Eingabeassistent hier noch fehlerhaft ist.
Gruß Daniel
ps. und eine bitte, lass den Quatsch, deinen Beitrag in mehrere Teile zu zerreissen und den ersten Halbsatz als Betreff zu verwenden.
Wenn du meinst, dass ein neuer Betreff notwendig ist, dann kannst du dir gerne eine ausdenken, aber schreibe bitte in der Nachricht vollständige Sätze, das liest sich einfach besser.
Auch ist ein sinnvoller Betreff, welcher eine Kurzzusammenfassung des Beitrags darstellt, sicherlich hilfreicher als der Anfang des ersten Satzes.
Ausserdem sollte der Betreff so gewählt werden, dass bspw in der Beitragsliste erkannt werden kann, welches die Vorgängerbeiträge zu diesem Beitrag sind.

das stand und steht nicht zur Diskussion, denn ...
23.06.2015 11:17:51
der neopa C
Hallo Daniel,
... dass die Funktionalität unter VBA nicht korrekt arbeitet, hatte ich nie behauptet.
Fakt ist, dass die angebotene Funktionalität ohne VBA jedoch den festgestellten Grenzwert hat. Es kann sein, dass die Ursache dafür der Eingabeassistent ist. Aber für den "Normaluser" ist es zweitrangig, was die Ursache für die Einschränkung ist. Ihm interessiert bestenfalls, wo diese liegt und ob und wie er diese mit dem ihm möglichen Mitteln umgehen kann und dann meist erst zweitrangig, warum die Einschränkung überhaupt vorliegt.
Der ursprünglichen Fragestellung im thread entsprechend, hatte ich den Grenzwert der "Standard"funktion gefunden wie auch genau lokalisiert und damit die Begründung dafür aufgezeigt, das die von Excel angebotene Standardfunktion bei der vorliegenden Problemstellung nicht zum gewünschten Ergebnis führen konnte/kann. Was soll daran falsch sein, wie Du behauptest?
Auch hatte ich eine alternative Lösungsmöglichkeit ohne VBA angeboten (VBA-Lösungsangebote lagen ja bereit vor). Deine dann später ebenfalls angebotene alternative VBA-freie Lösungsmöglichkeit ist zwar sicherlich noch einen Tick einfacher und effektiver, aber inzwischen wird der Fragesteller wohl schon die VBA-Lösung genutzt haben.
Zu Deinen unter "ps." getätigten Ausführungen, vertrete ich eben eine andere Meinung. Ich habe nicht und werde nie behaupten, dass ich meine in der Betreffzeile gewählten Aussagen immer für voll zutreffend halte, geschweige denn immer mit diesen selbst zufrieden bin. Doch entsprechend dem Stil der Listenstruktur hier im Herber Forum, betrachte ich diese allemal meist sinnvoller und zumindest interessanter, als eine stoische Übernahme des Betreffbezeichnung des thread-Eröffners oder aus dem vorangehenden Beitrag. Aus Sicht von Usern, die mit Forensoftware wie z.B. in Office-Lösungen zu tun hatten/haben, ist dies sicherlich gewöhnungsbedürftig. Allerdings gilt gleiches auch umgekehrt für Nutzer dieses Forums in den dortigen Foren. Dort würde eine gute Änderung des Betreffs keinerlei Zugewinn bringen, weil man dort immer nur mit dem hier im Forum vergleichbaren "Archivthread"-Ansicht zu zun hat, die ich hier im Forum nur zusätzlich "parallel zuschalte", wenn ich einen Beitrag schreibe oder ich mir einen oberflächlichen Überblick über die bisher getätigten Beitrage verschaffen möchte.
In diesem Forum arbeite ich hauptsächlich mit der FORUMSLISTE und bei Bedarf zusätzlich mit der "Archivthread"-Ansicht wie vor beschrieben doch fast nie mit der BEITRAGSLISTE
Ich finde diese Art der Forumnutzung für mich persönlich eben günstig. Nicht deswegen aber aus den bereits vorbenannten Gründen, werde ich auch meinen Beitragsstil hier im Forum beibehalten.
Gruß Werner
.. , - ...

Schon erstaunlich, ...
23.06.2015 14:28:46
Luc:-?
…Werner,
wie einige „Fremdgänger“ aus OL hier stoisch an ihrer ForumsErstprägung bzw -„Sozialisation“ festhalten wollen, wobei (das alte) OL noch nicht mal das ältere Forum war und ist, aber trotzdem das Altmodischere, weil es nicht mal auf dem aktuellen HTML-Stand(ard) war und ist. HWH hat dahingg sein Forum in der Vergangenheit mehrfach angepasst.
Übrigens, ganz auf einen Unterbetreff verzichtet nur das CEF, womit es sich nicht nur deutlich von seiner „Stiefmutter“ CF, sondern auch seinem Vorbild (provisorisches) OL abgrenzt.
Die meisten Foren dürften (alternative) Baumstrukturen haben.
Ansonsten pflichte ich dir bei, diesem „Slowboarder“ steht es nicht zu, Alteingesessene und bewährte AWer deshalb und derart zu kritisieren, auch, wenn er ein Viel-AWer ist. Letzteres bürgt auch nicht immer für Qualität, sondern mag pragmatische Gründe haben (wie bei Hajo) oder in der jeweiligen Persönlichkeit begründet liegen…
Gruß, Luc :-?

AW: Schon erstaunlich, ...
23.06.2015 14:39:51
Daniel
Hi Luc.
ich finde es erstaunlich, wie die Fremdgänger aus dem Herberforum an ihrer ForumsErstprägung festhalten, wenn sie sich in einm Forum mit andrern Strukturen aufhalten.
Gruß Daniel

Ihr seid eine Minorität! owT
26.06.2015 20:28:29
Luc:-?
:-?

68 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige