Zughöriger Quellcode:
For i=1 To a ' a ist eine variable Grenze die in einer anderen Schleife bestimmt wird(ca. 4000)
For j=1 To a
For l=1 To x ' gilt das gleiche wie bei a, nur auf eine andere Spalte bezogen(ca. 200)
If Cells(2+i,3).Value=l And Cells(2+j,4).Value="1" Then
Cells(2+j,5). Copy Destination:= Cells(2+z,6)
z=z+1
End If
Next l
Next j
Next i
was mein Ziel ist: Wenn in Spalte C(laufvariable i) eine 1 steht und in Spalte D eine 1(Laufvariable j) steht, soll die Zelle daneben(Spalte D) kopiert werden und in Spalte F ausgegeben werden, geordnet nach Spalte B(also von 1 bis 500 oder so, laufvariable l). Enstsprechend sollen E3 und E9 kopiert und nach F3 und F4 kopiert werden. Fehlt solch ein passender Eintrag, wie bei C20/D20 so soll in F5 eine Zelle frei bleiben(das schafft z als zusätzliche Laufvariable leider nicht).
Für Zelle C ist die Anzahl gleicher Einträge(1,2 usw.) nicht immer die selbe Anzahl von Zellen, sodass ich bisher keine Möglichkeit gefunden habe außer alle Spalten durchsuchen zu lassen. Das wäre aus meiner Sicht auch eine Möglichkeit, durch eine variable obere und untere Grenze von j das einzugrenzen. Eine andere Möglichkeit wäre vllt noch, sobald er ein Erg. gefunden hat die Schleife abzubrechen.
Mit dem oben beschriebenen Quelltext sucht er mir zwar alle Werte richtig raus, lässt aber da wo kein Wert ist auch keine Zelle frei...
ich hoffe ich hab mich mehr oder weniger Verständlich ausgedrückt und irgendjemand kann mir helfen.
Viele Grüße, Toni