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

Datenabfrage

Datenabfrage
11.07.2015 16:01:47
Michael

Guten Tag,
ich habe folgendes Problem:
in einem Blatt habe eine etwas "krumme" Datenbank. Die wichtigen Kriterien zum abgriff der relevanten Spalten befinden sich oberhalb der Liste in drei Zeilen.
In einem anderen Blatt möchte ich nun drei Kriterien eingeben und es sollen Daten aus den relevanten Spalten in das Zielblatt übertragen werden.
Zum besseren Verständnis hier ein Beispiel: https://www.herber.de/bbs/user/98772.xlsx
Bisher habe ich das immer manuell gemacht. Da die Datenbasis aber sehr groß ist (>200 Spalten und <1500 Zeilen)wird das immer aufwendiger.
alle Versuche mit dem Rekorder oder im Internet gefunden Codestücken habe nichts gebracht.
Gruß
Mcihael

27
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenabfrage
11.07.2015 18:01:13
Sepp
Hallo Michael,
ich sehe nur vier Übereinstimmende Spalten!
Zielblatt

Was ich noch sagen wollte...
11.07.2015 18:02:25
Sepp
..., wenn du die Daten und Kriterien etwas anders anordnest, dann könntest du eine Auswertung evtl. per Pivot-Tabelle machen.
Gruß Sepp

geht es auch mit VBA?
11.07.2015 18:10:14
Michael
Hallo Sepp,
natürlich sind es nur 4 Datensätze!
Deine Lösung via Formel funktioniert. Wäre auch eine Lösung mit Makro möglich?! Die Mappe ist bereits übervoll mit Formeln, sodass die Performance etwas leidet.
Gruß und vielen Dank
Michael

AW: geht es auch mit VBA?
11.07.2015 18:15:43
Sepp
Hallo Michael,
sicher geht das auch per VBA, aber jetzt habe ich keine Lust und Zeit, vielleicht später.
Gruß Sepp

Anzeige
ich wünsche Dir einen schönen abend!
11.07.2015 18:20:11
Michael
Hallo Sepp,
mit der Formellösung komme ich schon sehr gut weiter!
Optimal wäre etwas mit VBA, aber ich will ja nicht unverschämt werden. (die Vorgehensweise interessiert mich sehr, da ich solch eine Struktur vielleicht öfter haben werde.)
Ich wünsche Dir noch einen schönen Abend.
Gruß
Michael

doch noch Zeit gehbabt ;-))
11.07.2015 18:51:10
Sepp
Hallo Micheal,
in ein allgemeines Modul.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub daten()
  Dim vntData As Variant, vntCrit As Variant, vntRet() As Variant
  Dim vntCity As Variant, vntSize As Variant, vntGroup As Variant
  Dim date1 As Date, date2 As Date
  Dim lngRow As Long, lngCol As Long, lngI As Long, lngN As Long
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Sheets("Quelle")
    vntCrit = .Range("B1:HZ3")
    vntData = .Range("A21:HZ1600")
  End With
  
  With Sheets("Zielblatt")
    vntCity = .Range("B13")
    vntSize = .Range("B14")
    vntGroup = .Range("B15")
    date1 = .Range("B16")
    date2 = .Range("B17")
  End With
  
  Redim vntRet(1 To UBound(vntData, 1), 1 To UBound(vntData, 2))
  
  vntRet(1, 1) = "Datum"
  lngN = 1
  
  For lngCol = 2 To UBound(vntData, 2)
    If vntCrit(1, lngCol - 1) = vntCity And vntCrit(2, lngCol - 1) = vntSize And vntCrit(3, lngCol - 1) = vntGroup Then
      lngN = lngN + 1
      vntRet(1, lngN) = vntData(1, lngCol)
      lngI = 1
      For lngRow = 2 To UBound(vntData, 1)
        If vntData(lngRow, 1) >= date1 And vntData(lngRow, 1) <= date2 Then
          lngI = lngI + 1
          vntRet(lngI, 1) = vntData(lngRow, 1)
          vntRet(lngI, lngN) = vntData(lngRow, lngCol)
        End If
      Next
    End If
  Next
  
  With Sheets("Zielblatt")
    .Range("A21").Resize(UBound(vntRet, 1), UBound(vntRet, 2)) = vntRet
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'daten'" & 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 - daten"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
End Sub


Gruß Sepp

Anzeige
Toll
11.07.2015 19:20:27
Michael
Hallo Sepp,
lauft super schnell und liefert alles wie gewünscht!
Jetzt habe ich noch einige Zeit vor mir, um den Code richtig zu verstehen.
Vielen Dank für deine tolle Unterstützung.
Gruß und einen schönen Abend
Michael

Nachfrage
11.07.2015 22:02:11
Thomas
Hallo,
die Sache die Ihr hier gebaut habt ist ein Hammer.
Ich habe dazu nur eine peinliche Frage. Wie heißen die "drehfelder" in Spalte B 13 bis B14 vom Zielblatt. Ich weiss das Sie die die Bereiche vom Namensmanager nutzen aber ich komme bei diesen Feldern weder in die Eigenschaften oder so etwas.Ich weiss einfach nicht wie man diese erstellt. Da ich auch nicht rausbekomme wie sie heissen kann ich dies auch nicht googeln.
liebe grüsse thomas

Anzeige
AW: Nachfrage
11.07.2015 22:08:55
Sepp
Hallo Thomas,
was du meinst, nennt sich Datengültigkeit. Zu finden unter "Daten" > "Datenüberprüfung".
Gruß Sepp

AW: Nachfrage
11.07.2015 23:17:59
Thomas
Hallo Sepp,
besten dank auch dafür das Du mich nicht auslachst. Eigentlich habe ich mein Staus auf Excel gut geschätzt aber seid ich dies Forum kenne stelle ich fest das ich ein blutiger anfänger bin.
Hast Du noch Lust dies makro zu erweitern? Man kann hiermit klasse bestimmte Auswertungen in einer riesigen Datenbank definieren innerhalb eines zeitraums. zur zeit arbeite ich daran so eine datenbank auszuwerten und benutze für jede Auswertung ein neues Blatt und ein neues angepasstes makro. mit der zeit wird es aber sehr unübersichtlich.
Deine methode lässt es zu in einem Blatt alle auswertungen zu Fahren. Das einzige was mir fehlen würde wäre "kopiere nur die zeilen mit dem Wort Magdeburg oder so" in zelle B19 definiert. Ich meine dies als zusätzliches kriterium zu den schon vorhandenen Spaltenkriterien. wenn die zelle b19 leer ist soll alles so sein wie jetzt. damit könnte ich meine treffer noch mehr auf den punkt bringen. Geht dies ?
ich sehe noch die möglichkeit für ein anschliessendes Makro erst deins fertig machenlassen und dann lösche alle zeilen welche nicht das kriterium aus Zelle B19 in irgenteiner Spalte enthalten.Ist B19 leer Makro ende. Bekommst Du soetwas hin?
Liebe Grüsse thomas

Anzeige
AW: Nachfrage
11.07.2015 23:26:47
Sepp
Hallo Thomas,
und deine Daten sind genau so aufgebaut wie die von Michael?
Auch mit den Kriterien in den Kopfzeilen und so?
Wo soll den nach dem neuen Kriterium gesucht werden?
Gruß Sepp

AW: Nachfrage
12.07.2015 00:13:35
Thomas
hallo Sepp,
die Datumsspalte von bis ist die Spalte h und die überschrift der Datenbank steht in zeile 1. Aber ich hab schon gesehen das man dies in dein Makro verändern kann ( ausser die Spaltekriterien aus dem Quelleblatt ins Zielblatt auszusondern ist noch nicht gelungen) . Zu wo soll gesucht werden. Da sich ja die Spalten je nach definition ständig ändern würde ich sagen das es das beste wäre wirklich wenn man im Ergebnis von dein Makro alle zeilen löscht in dem dies kreterium nicht vokommt. Möglich wäre auch wenn man das macro sagen würde suche innerhalb des zeitbereichs (in Spalte H) nach dem kriterium aus zelle B19 ( neu dann im Zielblatt definiert) und kopiere nur die zeilen mit dem Kriterium und die spalten welche mit dem Kriterien . Meine Datenbank hatt zur Zeit 140 Spalten ( aber auch dies kann man bei dein macro super anpassen. Oh Oh ist schon komplieziert zu beschreiben. Habe mal die Datei so gebaut wie meine aussieht.

Die Datei https://www.herber.de/bbs/user/98774.xlsm wurde aus Datenschutzgründen gelöscht


liebe grüsse Thomas
vielen Dank für dein interesse liebe grüsse Thomas

Anzeige
AW: Nachfrage
12.07.2015 12:04:45
Thomas
Hallo Sepp,
das sieht richtig super aus. Ich habe mir das heut auch noch mal durchgelesen ich würde auch nicht durchsehen was ich geschrieben habe.Sorry. Ich habe es in der Datei kenntlich gemacht wie ich dies eigentlich meine.
https://www.herber.de/bbs/user/98779.xlsm.
hab vielen vielen Dank für dein Mühe.
liebe grüsse Thomas

Anzeige
AW: Nachfrage
12.07.2015 12:13:59
Thomas
Hallo Sepp,
ups habe noch vergessen.
Wenn in diesem Fall die Zelle b23 leer ist sollen alle zeilen erscheinen. Die roten und die Grünen.
Liebe grüsse Thomas

AW: Nachfrage
12.07.2015 14:31:19
Sepp
Hallo Thomas,
du hast nicht gesagt, ob alle Spalten auf das Zusatzkriterium geprüft werden sollen, oder nur Spalten die den ersten vier Kriterien entsprechen.
so für alle Spalten.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub daten()
  Dim vntData As Variant, vntCrit As Variant, vntRet() As Variant
  Dim vntCity As Variant, vntSize As Variant, vntGroup As Variant, vntThomas As Variant
  Dim date1 As Date, date2 As Date, vntExtra As Variant
  Dim lngRow As Long, lngCol As Long, lngC As Long, lngI As Long, lngN As Long
  Dim bolDoIt As Boolean
  
  On Error GoTo ErrExit
  
  With Sheets("Quelle")
    vntData = .Range("A1:T1600")
  End With
  
  With Sheets("Zielblatt")
    vntCrit = .Range("B1:U4") ' anzahl der zeilen im blatt Quelle
    vntCity = .Range("B17")
    vntSize = .Range("B18")
    vntGroup = .Range("B19")
    vntThomas = .Range("B20")
    date1 = .Range("B21")
    date2 = .Range("B22")
    vntExtra = .Range("B23")
  End With
  
  Redim vntRet(1 To UBound(vntData, 1), 1 To UBound(vntData, 2))
  
  vntRet(1, 1) = "Datum"
  lngN = 1
  
  For lngCol = 2 To UBound(vntData, 2)
    If vntCrit(1, lngCol - 1) = vntCity And _
      vntCrit(2, lngCol - 1) = vntSize And _
      vntCrit(3, lngCol - 1) = vntGroup And _
      vntCrit(4, lngCol - 1) = vntThomas Then
      lngN = lngN + 1
      vntRet(1, lngN) = vntData(1, lngCol)
      lngI = 1
      For lngRow = 2 To UBound(vntData, 1)
        If vntData(lngRow, 8) >= date1 And vntData(lngRow, 8) <= date2 Then
          bolDoIt = False
          If vntExtra <> "" Then
            For lngC = 2 To UBound(vntData, 2)
              If vntData(lngRow, lngC) = vntExtra Then
                bolDoIt = True
                Exit For
              End If
            Next
          Else
            bolDoIt = True
          End If
          If bolDoIt Then
            lngI = lngI + 1
            vntRet(lngI, 1) = vntData(lngRow, 8)
            vntRet(lngI, lngN) = vntData(lngRow, lngCol)
          End If
        End If
      Next
    End If
  Next
  
  With Sheets("Zielblatt")
    .Range("A25").Resize(UBound(vntRet, 1), UBound(vntRet, 2)) = vntRet
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'daten'" & 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 - daten"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
End Sub


Gruß Sepp

Anzeige
Und zum neuen Kriterium ...
12.07.2015 09:02:49
Sepp
... wollte ich noch sagen, dass es immer noch nicht klar ist, wie du das meinst!
Du hast nun vier Kriterien in den Kopfzeilen, was soll da noch dazukommen?
Und sag nicht immer, wie du glaubst das es geht, sondern beschreibe mal genau, wo dieses Kriterium zu finden ist, ich hab da nämlich nichts gesehen!
Gruß Sepp

Ich habe auch noch eine Frage!
12.07.2015 15:44:31
Michael
Hallo Sepp,
also Deine Lösung [VBA] ist wirklich toll! [extrem schnell]
aber eine Frage hätte ich noch auf Lager: kann ich bei den Kriterien einen Joker verwenden? Ich habe mal einfach so rumprobiert, aber keine passende Syntax gefunden. Ist im Moment nicht aktuell, ich sehe diese Anforderung aber auf mich zurollen.
Schön, dass noch ein anderer User gefallen an Deiner Lösung gefunden hat.
Gruß
Michael

Anzeige
AW: Ich habe auch noch eine Frage!
12.07.2015 15:59:11
Sepp
Hallo Michael,
verwende bei "Stadt", "Größe" oder "Gruppe" den Asteriks (*) als Wildcard und passe den Code an.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub daten()
  Dim vntData As Variant, vntCrit As Variant, vntRet() As Variant
  Dim vntCity As Variant, vntSize As Variant, vntGroup As Variant
  Dim date1 As Date, date2 As Date
  Dim lngRow As Long, lngCol As Long, lngI As Long, lngN As Long
  Dim bolAllData As Boolean
  
  On Error GoTo ErrExit
  
  With Sheets("Zielblatt2")
    vntCity = .Range("B13")
    vntSize = .Range("B14")
    vntGroup = .Range("B15")
    date1 = .Range("B16")
    date2 = .Range("B17")
    bolAllData = Application.CountA(.Range("B13:B17")) = 5
  End With
  
  If bolAllData Then
    
    With Sheets("Quelle")
      vntCrit = .Range("B1:HZ3")
      vntData = .Range("A21:HZ1600")
    End With
    
    Redim vntRet(1 To UBound(vntData, 1), 1 To UBound(vntData, 2))
    
    vntRet(1, 1) = "Datum"
    lngN = 1
    
    For lngCol = 2 To UBound(vntData, 2)
      If (vntCrit(1, lngCol - 1) = vntCity Or vntCity = "*") And (vntCrit(2, lngCol - 1) = vntSize Or _
        vntSize = "*") And (vntCrit(3, lngCol - 1) = vntGroup Or vntGroup = "*") Then
        lngN = lngN + 1
        vntRet(1, lngN) = vntData(1, lngCol)
        lngI = 1
        For lngRow = 2 To UBound(vntData, 1)
          If vntData(lngRow, 1) >= date1 And vntData(lngRow, 1) <= date2 Then
            lngI = lngI + 1
            vntRet(lngI, 1) = vntData(lngRow, 1)
            vntRet(lngI, lngN) = vntData(lngRow, lngCol)
          End If
        Next
      End If
    Next
    
    Sheets("Zielblatt2").Range("A21").Resize(UBound(vntRet, 1), UBound(vntRet, 2)) = vntRet
  Else
    Sheets("Zielblatt2").Range("A21").CurrentRegion = ""
    Sheets("Zielblatt2").Range("A21") = "Datum"
  End If
  
  
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'daten'" & 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 - daten"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
End Sub


Gruß Sepp

Anzeige
WOW!
12.07.2015 17:20:17
Michael
Hallo Sepp,
wirklich toll! Sehr professionell erstellt.
Leider reicht mein rudimentäres VBA-Wissen nicht aus, um den Code in letzter Konsequenz zu verstehen.
Gruß und vielen, vielen Dank
Michael

AW: Ich habe auch noch eine Frage!
12.07.2015 17:28:47
Thomas
Hallo Sepp,
ich meine " suche nur in den Spalten die den ersten vier Kriterien entsprechen "
Und wenn die Zelle B23 leer ist soll das Makro nichts weiter machen. Nur die vier Kriterien abarbeiten.
So wie es jetzt eingestellt ist findet es leider nichts mehr. Schaust Du nochmal?
Und sorry wenn ich es nicht richtig erklärt habe.
Liebe Grüsse Thomas

AW: Ich habe auch noch eine Frage!
12.07.2015 17:38:10
Sepp
Hallo Thomas,
also das nicht gefunden wird, kann ich nicht nachvollziehen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub daten()
  Dim vntData As Variant, vntCrit As Variant, vntRet() As Variant
  Dim vntCity As Variant, vntSize As Variant, vntGroup As Variant, vntThomas As Variant
  Dim date1 As Date, date2 As Date, vntExtra As Variant
  Dim lngRow As Long, lngCol As Long, lngC As Long, lngI As Long, lngN As Long
  Dim bolDoIt As Boolean
  
  On Error GoTo ErrExit
  
  With Sheets("Quelle")
    vntData = .Range("A1:T1600")
  End With
  
  With Sheets("Zielblatt")
    vntCrit = .Range("B1:U4") ' anzahl der zeilen im blatt Quelle
    vntCity = .Range("B17")
    vntSize = .Range("B18")
    vntGroup = .Range("B19")
    vntThomas = .Range("B20")
    date1 = .Range("B21")
    date2 = .Range("B22")
    vntExtra = .Range("B23")
  End With
  
  Redim vntRet(1 To UBound(vntData, 1), 1 To UBound(vntData, 2))
  
  vntRet(1, 1) = "Datum"
  lngN = 1
  
  For lngCol = 2 To UBound(vntData, 2)
    If vntCrit(1, lngCol - 1) = vntCity And vntCrit(2, lngCol - 1) = vntSize And _
      vntCrit(3, lngCol - 1) = vntGroup And vntCrit(4, lngCol - 1) = vntThomas Then
      lngN = lngN + 1
      vntRet(1, lngN) = vntData(1, lngCol)
      lngI = 1
      For lngRow = 2 To UBound(vntData, 1)
        If vntData(lngRow, 8) >= date1 And vntData(lngRow, 8) <= date2 Then
          bolDoIt = False
          If vntExtra <> "" Then
            For lngC = 2 To UBound(vntData, 2)
              If vntData(lngRow, lngC) = vntExtra And vntCrit(1, lngC - 1) = vntCity And _
                vntCrit(2, lngC - 1) = vntSize And vntCrit(3, lngC - 1) = vntGroup And _
                vntCrit(4, lngC - 1) = vntThomas Then
                bolDoIt = True
                Exit For
              End If
            Next
          Else
            bolDoIt = True
          End If
          If bolDoIt Then
            lngI = lngI + 1
            vntRet(lngI, 1) = vntData(lngRow, 8)
            vntRet(lngI, lngN) = vntData(lngRow, lngCol)
          End If
        End If
      Next
    End If
  Next
  
  With Sheets("Zielblatt")
    .Range("A25").Resize(UBound(vntRet, 1), UBound(vntRet, 2)) = vntRet
  End With
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'daten'" & 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 - daten"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
End Sub


Gruß Sepp

Es passt Klasse
12.07.2015 18:01:26
Thomas
hallo Sepp,
ich glaube andere hätten mir dies schon um die Ohren gehauen. bin super glücklich.
Baust du mir auch noch den Joker ein? ( Oberklasse die Idee).
Ich weiss nicht was dies "bolAllData = Application.CountA(.Range("B13:B17")) = 5 bedeutet.
vielen vielen dank für deine Gedult.
liebe grüsse thomas

AW: Es passt Klasse
12.07.2015 18:05:27
Sepp
Hallo Thomas,
das mit dem Joker war in Michaels Code! und bolAllData ist bei dir auch nicht drin, das ist eine Prüfung, ob alle Kriterien einen Eintrag haben.
Gruß Sepp

AW: Es passt Klasse
12.07.2015 18:31:18
Thomas
Hallo Sepp,
Bin gerade beim durchtesten
kannst Du ohne viel aufwand mein ( oder besser dein code) noch an einem Punkt verbessern?
Das ich auch teile eines begriffs finde? Ich meine wenn ich z.B. in Zelle b23 "test" schreibe aber in den gefundenen Spalten test 1 vorkommt das es dies dann troztdem beücksichtigt? Es geht nur um die das Kriterium in Zelle b23 nicht um die anderen 4 Kriterien.
Dann ist es aber wirklich perfekt und ich habe dann auch wirklich keine Fragen mehr.
liebe grüsse Thomas

AW: Es passt Klasse
12.07.2015 20:25:52
Sepp
Hallo Thomas,
schreib statt
If vntData(lngRow, lngC) = vntExtra And vntCrit(1, lngC - 1) = vntCity And ... _
  

einfach
If LCase(vntData(lngRow, lngC)) Like LCase("*" & vntExtra & "*") And vntCrit(1, lngC - 1) = vntCity And ... _
  

LCase() weil dann auch Klein-/Groß-Schreibung egal ist.
Gruß Sepp

vielen Dank an Sepp
12.07.2015 21:07:38
Thomas
Hallo Sepp,
Michael sagt Wow ich sage dreimal Wow.
Bin schon dabei es bei mir einzubauen und alles klappt besten. Sau schnell und kein Fehler drin.
Ich weise gerade den spalten bestimmte kriterien zu und nun kann ich mit den gültigkeitsfeldern genau
die Spalten rausholen und wegklicken die ich brauch.
vielen vielen Dank
liebe grüsse thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige