Immer den gleichen Tag im Monat finden
#1
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


Angehängte Dateien
.xlsm   Forumtest (2).xlsm (Größe: 69,25 KB / Downloads: 6)
Antworten Top
#2
Hi,

wenn Du ein Startdatum hast, dann musst Du doch einfach nur 28Tage dazuzählen (bzw. ein Vielfaches davon)!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#3
=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.
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top
#4
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
Antworten Top
#5
Hier etwas anders sequenziert und gefiltert:

=LET(x;SEQUENZ(366;;"1.1");FILTER(x;(ABS(TAG(x)-18)<4)*(REST(x;7)=5)))
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste