Ich habe mein VBA Anliegen Gestern schon auf dem Forum gepostet aber leider ist aus irgendeinem Grund ein Durcheinander entstanden. Mehrere Forumler haben in meinem Posting geschrieben.
Hallo Franz und Sepp. Danke schon mal dass ihr dran arbeitet. Franz, dein Lösung Vorschlag lauft aber nicht so wo ich es mir erhofft habe.
Du hast mir diese Woche schon mal geholfen mit dem VBA Thema Tabelle Aufgrund von/bis Datum (Periodebereich) Ich habe dein Code so umprogrammiert dass es für meine Zwecke
Passt. Der Identifier kommt (in der erste spalte) öfters vor und dass muss auch so sein. Doch was nicht sein darf ist dass nach dem Transpose Identifier mit den gleichen Identifiernamen in den Spalten stehen.
In dem Code (Tabelle Aufgrund von/bis Datum (Periodebereich) wird der Identifier und Datum kontrolliert. Nachhinein habe ich aber gemerkt dass zusätzliche Kriterien geprüft werden müssen. Darum das Posting Rows in Array einlesen (Dup.check) und Transpose
Bedingungen sind Identifier und Datum (Start und End) und nachhinein auch noch der Identifiername und Typ. Ich schätze dass ist nur zu erreichen wenn Zeilen mit ausgewählten Identifier und zutreffendes Datum samt Identifiername und Typ via eine Schleife ins Array kommen. Wenn dann der Identifiername und Typ schon vorkommen, müsste der Eintrag nicht noch mal stattfinden.
Ein Teil vom Code hänge ich mal an. Ich schätze dass der Code ab der Datumscheck durch eine Arraylösung ersetzt werden muss? Da könnt ihr doch bestimmt helfen.. Gruss, Robert
wksDaten.Select
iSpalte = 3
For lZeile = 2 To wksDaten.Cells(.Rows.Count, 20).End(xlUp).Row
If wksDaten.Cells(lZeile, 20).Value = BMID_auswahl Then
If DatumsCheck(Start:=wksDaten.Cells(lZeile, 30), _
Ende:=IIf(IsEmpty(wksDaten.Cells(lZeile, 31)), tEnde, _
wksDaten.Cells(lZeile, 31)), _
PeriodeStart:=tStart, PeriodeEnde:=tEnde) = True Then
wksDaten.Range(Cells(lZeile, 20), Cells(lZeile, 32)).Copy
lZ_Start = 1
wks.Cells(lZ_Start, iSpalte).PasteSpecial Paste:=xlPasteAll, Transpose:=True
End If
iSpalte = iSpalte + 1
End If
Next