20.01.2017, 12:26
Hallo zusammen,
diese Aufgabe würde ich eher mit VBA lösen, z.B. mit folgendem Code:
Ausgangslage in Tabelle Geburtstage stehen die Namen und Geburtstage in Spalte A (siehe auch Kommentare im Code)
Die Listen entstehen in Tabelle Namenslisten
So sehe das Ergebnis nach Ausführung des Makros aus:
natürlich bis zum Monatsende
Sollten große Datenmengen vorliegen, dann kann der Code auch angepast werden, damit es schneller geht.
diese Aufgabe würde ich eher mit VBA lösen, z.B. mit folgendem Code:
Code:
Sub daten_listen()
Dim i As Long, j As Long, k As Long
Dim lngZ As Long
Dim lngA As Long
Dim lngSchrittweite As Long
Dim datSerie As Date
Dim lngJahr As Long
lngJahr = Year(Date) 'es wird das Aktuelle Jahr genommen; soll ein anderes Jahr genommen werden , dann Year(Date) mit der Jahreszahl ersetzen
Application.ScreenUpdating = False
Sheets("Namenslisten").Cells.Clear 'in dieser Tabelle sollen die Listen entstehen
With Sheets("Geburtstage") 'in dieser Tabelle stehen die Namen und Geburtstage in Spalte A
lngZ = .Cells(.Rows.Count, 1).End(xlUp).Row
lngA = 2 'in dieser Zeile steht der erste Name
lngSchrittweite = 3 'das nächste immer so viele Zeilen weiter unten
k = 1
For j = lngA To lngZ Step lngSchrittweite
For datSerie = DateSerial(lngJahr, Month(.Cells(j + 1, 1)), 1) To DateSerial(lngJahr, Month(.Cells(j + 1, 1)) + 1, 1) - 1
Sheets("Namenslisten").Cells(i + 1, k) = .Cells(j, 1)
Sheets("Namenslisten").Cells(i + 1, k + 1) = datSerie
i = i + 1
Next datSerie
k = k + 4
i = 0
Next j
End With
Application.ScreenUpdating = True
End Sub
Ausgangslage in Tabelle Geburtstage stehen die Namen und Geburtstage in Spalte A (siehe auch Kommentare im Code)
Die Listen entstehen in Tabelle Namenslisten
So sehe das Ergebnis nach Ausführung des Makros aus:
Arbeitsblatt mit dem Namen 'Namenslisten' | ||||||||||||||
A | B | C | D | E | F | G | H | I | J | K | L | M | N | |
1 | Hans Dampf | 01.01.2017 | Igor Meyer | 01.01.2017 | Tina Turner | 01.02.2017 | Egon Balder | 01.03.2017 | ||||||
2 | Hans Dampf | 02.01.2017 | Igor Meyer | 02.01.2017 | Tina Turner | 02.02.2017 | Egon Balder | 02.03.2017 | ||||||
3 | Hans Dampf | 03.01.2017 | Igor Meyer | 03.01.2017 | Tina Turner | 03.02.2017 | Egon Balder | 03.03.2017 |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
natürlich bis zum Monatsende
Arbeitsblatt mit dem Namen 'Namenslisten' | ||||||||||||||
A | B | C | D | E | F | G | H | I | J | K | L | M | N | |
26 | Hans Dampf | 26.01.2017 | Igor Meyer | 26.01.2017 | Tina Turner | 26.02.2017 | Egon Balder | 26.03.2017 | ||||||
27 | Hans Dampf | 27.01.2017 | Igor Meyer | 27.01.2017 | Tina Turner | 27.02.2017 | Egon Balder | 27.03.2017 | ||||||
28 | Hans Dampf | 28.01.2017 | Igor Meyer | 28.01.2017 | Tina Turner | 28.02.2017 | Egon Balder | 28.03.2017 | ||||||
29 | Hans Dampf | 29.01.2017 | Igor Meyer | 29.01.2017 | Egon Balder | 29.03.2017 | ||||||||
30 | Hans Dampf | 30.01.2017 | Igor Meyer | 30.01.2017 | Egon Balder | 30.03.2017 | ||||||||
31 | Hans Dampf | 31.01.2017 | Igor Meyer | 31.01.2017 | Egon Balder | 31.03.2017 |
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg |
Sollten große Datenmengen vorliegen, dann kann der Code auch angepast werden, damit es schneller geht.
Gruß Atilla