Clever-Excel-Forum

Normale Version: Geburtstagsdaten umstrukturieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

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'
 ABCDEFGHIJKLMN
1Hans Dampf01.01.2017  Igor Meyer01.01.2017  Tina Turner01.02.2017  Egon Balder01.03.2017
2Hans Dampf02.01.2017  Igor Meyer02.01.2017  Tina Turner02.02.2017  Egon Balder02.03.2017
3Hans Dampf03.01.2017  Igor Meyer03.01.2017  Tina Turner03.02.2017  Egon Balder03.03.2017
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

natürlich bis zum Monatsende

Arbeitsblatt mit dem Namen 'Namenslisten'
 ABCDEFGHIJKLMN
26Hans Dampf26.01.2017  Igor Meyer26.01.2017  Tina Turner26.02.2017  Egon Balder26.03.2017
27Hans Dampf27.01.2017  Igor Meyer27.01.2017  Tina Turner27.02.2017  Egon Balder27.03.2017
28Hans Dampf28.01.2017  Igor Meyer28.01.2017  Tina Turner28.02.2017  Egon Balder28.03.2017
29Hans Dampf29.01.2017  Igor Meyer29.01.2017      Egon Balder29.03.2017
30Hans Dampf30.01.2017  Igor Meyer30.01.2017      Egon Balder30.03.2017
31Hans Dampf31.01.2017  Igor Meyer31.01.2017      Egon Balder31.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.
Hallöchen,

freut mich, dass auch ein paar Tage alte Themen wieder zu neuer Diskussion und neuen oder alternativen Lösungen führen. Smile
Seiten: 1 2