Hallo Tina,
Ist immer ein bisschen problematisch bei uns mit dem Verwenden
von Echtdaten. Ich dachte, es geht auch so.
Anonymisieren kannst du doch. Geht doch ruckzuck.
Die wahren Projektnamen interessieren doch nicht, irgendwo projekt1 reingeschrieben und runtergezogen, schon hast du eine Liste projekt1,Projekt2 usw.
Desgleichen für Vorname1, Namchname1, Stadt1 usw.
bei Telefonnumern andere Ziffern nehmen, hauptsache die Form xxx/xxxx oder xxx-xxxxx oder was auch immer bleibt gleich
und bei Zahlen es gibt die Funktion Zufallszahl…
Wichtig ist daß die tabellenstruktur erhalten bleibt.
wegen des Codes, Option Explicit und Option Base1 darf es proModul nur einmal geben und zwar muß es ganz zuoberst stehen.
Diesmal überprüft der Code wo „Q1“ in Spalte B ist und berechnet daraus die Zeile der Jahre.
Option Explicit
Option Base 1
'
Sub Quart()
Dim wksM As Worksheet, ZeiM As Long, SpaM As Long, SpaQ As Long, ZeiQ As Long
Dim ZeiP As Long, Awf As WorksheetFunction
Set wksM = Worksheets("Master")
Set Awf = Application.WorksheetFunction
With Worksheets("Quartalsübersicht3")
ZeiP = Awf.Match("Q1", .Columns(2)) + 1
.Range("B" & ZeiP & ":BK30").ClearContents
For SpaM = 6 To 18 Step 3
For ZeiM = 3 To wksM.Cells(Rows.Count, SpaM).End(xlUp).Row
If Awf.CountIf(.Columns(1), wksM.Cells(ZeiM, 3)) \> 0 Then
If IsDate(wksM.Cells(ZeiM, SpaM)) Then
ZeiQ = Awf.Match(wksM.Cells(ZeiM, 3), .Columns(1), 0)
SpaQ = Awf.Match(Year(wksM.Cells(ZeiM, SpaM)), .Rows(ZeiP - 2), 0)
SpaQ = SpaQ + (Quartal(wksM.Cells(ZeiM, SpaM)) - 1) \* 2
If .Cells(ZeiQ, SpaQ + 1) "" Then .Cells(ZeiQ, SpaQ + 1) = .Cells(ZeiQ, SpaQ + 1) & ","
.Cells(ZeiQ, SpaQ) = ChrW(9836)
.Cells(ZeiQ, SpaQ + 1) = .Cells(ZeiQ, SpaQ + 1) & wksM.Cells(ZeiM, SpaM + 2)
End If
End If
Next ZeiM
Next SpaM
End With
End Sub
Gruß
Reinhard