Clever-Excel-Forum

Normale Version: Immer den gleichen Tag im Monat finden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend zusammen,

ich stehe erneu vor einer Herausforderung...
Anbei findet ihr eine Tabelle zum probieren.
Es geht um folgendes:
Ich muss Leistung für bestimmte Tage planen, für einen 2 wöchigen Rythmus konnte ich mir super mit Activecell.Row,Activecell.column +1 +2 +3usw helfen :D ich weiß geht bestimmt auch leichter aber es funktioniert :)
So nun habe ich aber auch Leistung die einmal im Monat geplant werden muss (4 mal im Jahr usw gibt es natürlich auch aber da würde mir nur einfallen über eine Datums eingabe ein Datum anzusprechen).
So da ich nicht immer das ganze Jahr durchscrollen will würde ich gerne auswählen das er ab dem Datum wo ich Änderrungen planen muss jeden (Beispiel) 3. Donnerstag im Monat nimmt und aus der aktiven Zeile den wert aus Spalt E (Stunden Jeh reinigung) einträgt.
Bevor ich nun wirklich anfange 365 Button zu erstellen und am ende bei Cells( Activecell.Row,Activecell.column+365) lande  Big Grin  hoffe ich hier einen attraktiveren weg aufgezeigt zu bekommen :) 

Lg Seeqi
Hi,

wenn Du ein Startdatum hast, dann musst Du doch einfach nur 28Tage dazuzählen (bzw. ein Vielfaches davon)!
=LET(x;SEQUENZ(53;;KÜRZEN(("5.1"+2)/7)*7-2;7);FILTER(x;ABS(TAG(x)-18)<4))

weil die 3. Donnerstage nicht 4 Wochen voneinander entfernt sind.
Hallo Seeqi,

mein Vorschlag ist, das mit Doppelklick in die erste Zelle des Intervall zu starten. Der Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblatts:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim i As Long
  Dim varQ As Variant
  Dim varTage As Variant
  If Target.Row > 4 And Target.Column > 6 Then
    ReDim varTage(1 To 1, 1 To Cells(4, Columns.Count).End(xlToLeft).Column - Target.Column + 1)
    varQ = Cells(Target.Row, 5).Value
    varTage = Target.Resize(, UBound(varTage, 2)).Value
    For i = 1 To UBound(varTage, 2) Step 7  '<<< Intervall hier 7
      varTage(1, i) = varQ
    Next i
    Target.Resize(, UBound(varTage, 2)).Value = varTage
  End If
End Sub

Gruß, Uwe
Hier etwas anders sequenziert und gefiltert:

=LET(x;SEQUENZ(366;;"1.1");FILTER(x;(ABS(TAG(x)-18)<4)*(REST(x;7)=5)))