Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1128to1132
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmte Tage auflisten

Bestimmte Tage auflisten
hary
Einen schoenen guten Abend zusammen
Hab mal ein Formelfrage. In SpalteA sollen fuer's Jahr, jeweils monatlich der erste Freitag, der dritte Freitag und der dritte Sonntag, aufgelistet werden. siehe Beispiel
Mit einzel Formel kein Problem, aber geht es auch mit Formel kopierbar(runterziehen)?
Formel oder VBA ist egal.
Danke schon mal fuer's Gedanken machen.
Gruss hary
Tabelle1
 AB
1   
201.01.2010<-- 1.Freitag
315.01.2010<--2.Freitag
417.01.2010<--3.Sonntag
505.02.2010<-- 1.Freitag
619.02.2010<--2.Freitag
721.02.2010<--3.Sonntag
8usw. 

Tabellendarstellung in Foren


11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bestimmte Tage auflisten
19.01.2010 22:22:06
Christian
Hallo hary,
mit Unterstützung von http://www.excelformeln.de/formeln.html?welcher=187
als Ansatz:
Jahr steht in B1 Formel ab A1 eintragen:
=WERT(DATUM($B$1;GANZZAHL((ZEILE()-1)/3+1);1))-1-WOCHENTAG(DATUM($B$1;GANZZAHL((ZEILE()-1)/3+1);1) -WENN(REST(ZEILE();3)>0;5;7);3)+7*WENN(REST(ZEILE();3)=0;3;WENN(REST(ZEILE();3)=2;3;REST(ZEILE(); 3)))
MfG Christian
AW: Bestimmte Tage auflisten
19.01.2010 22:24:46
Daniel
Hi
hier mal als Ansatz, Ausgangspunkt ist die WAHL-Funktion in Verbindung mit Zeile und Rest, die Einzelnen Parameter musst du abhängig von der Startzeile noch anpassen.
da du die einzelformeln ja hast, brauche ich mir darüber keine Gedanken zu machen.
=WAHL(REST(ZEILE()-2;3)+1;Formel für ersten Freitag;A1+14;A1+2)
Gruß, Daniel
Anzeige
AW: Bestimmte Tage auflisten
19.01.2010 22:44:24
Josef
Hallo Harry,
hier eine VBA-Lösung.
Sub DatumSpezial()
  Dim intIndex As Integer, intYear As Integer, intDay As Long, intMonth As Integer
  Dim vntDate() As Variant
  
  intYear = Application.InputBox("Bitte das gewünschte Jahr eingeben", "Datumsfolge", Year(Date), Type:=1)
  
  Redim vntDate(1 To 1)
  
  If intYear < 1 Or intYear > 3999 Then Exit Sub
  For intMonth = 1 To 12
    For intDay = 1 To 22
      If Weekday(DateSerial(intYear, intMonth, intDay), 2) = 5 Then
        Redim Preserve vntDate(1 To UBound(vntDate) + IIf(UBound(vntDate) = 1, 2, 3))
        vntDate(UBound(vntDate) - 2) = Clng(DateSerial(intYear, intMonth, intDay))
        vntDate(UBound(vntDate) - 1) = Clng(DateSerial(intYear, intMonth, intDay + 14))
        vntDate(UBound(vntDate)) = Clng(DateSerial(intYear, intMonth, intDay + 16))
        Exit For
      End If
    Next
  Next
  
  Range("A2").Resize(UBound(vntDate), 1) = Application.Transpose(vntDate)
End Sub

Gruß Sepp

Anzeige
@ Sepp - OT
19.01.2010 22:58:35
Beate
Hallo Sepp,
schau bitte mal ins Inside-Forum von Online-Excel, oberster Beitrag.
Gruß,
Beate
vielen Dank ihr Drei owT Gruss hary
19.01.2010 23:05:17
hary
.
@ Josef E.
19.01.2010 23:47:53
Christian
Hallo Josef,
bei Deiner VBA-Lösung zeigt sich, das wenn der Monatserste auf Sa. oder So. fällt, das dann bereits der 2. Sonntag aufgelistet wird. Bitte nicht als bösgemeinte Kritik nehmen, aber da ich mich nun immer mehr an VBA rantaste, wüsste ich gerne warum, da ich den Code eigentlich recht schlüssig fand.
MfG Christian
AW: @ Christian
20.01.2010 00:11:13
hary
Hallo Christian
also bei mir zeigt es richtig an. Jedenfalls wie ich es brauche. 1.August ist ein Sonntag.
Tabelle2
 A
2306.08.2010
2420.08.2010
2522.08.2010

Tabellendarstellung in Foren


gruss hary
Anzeige
AW:LoL...
20.01.2010 00:20:34
hary
Hallo Christian
musste doch noch mal in Deine Formel schauen. Das passt nicht fuer meine Beduerfnisse ;-)))
Obwohl es doch richtig ist!!!!!!!
Hatte mich schlecht ausgedrueckt. T'schuldigung.Haette es so beschreiben sollen:
Jeden ersten und dritten Freitag ist unser Vereinsheim auf und am Sonntag nach dem dritten Freitag haben wir Vereinssitzung. da passt der VBA Code und Deine Formel im August nicht. Formel ist aber nicht umsonst geschrieben!!!!!
Tabelle1
 C
2206.08.2010
2320.08.2010
2415.08.2010

verwendete Formeln
Zelle Formel
C22 =WERT(DATUM($H$1;GANZZAHL((ZEILE()-1)/3+1);1))-1-WOCHENTAG(DATUM($H$1;GANZZAHL((ZEILE()-1)/3+1);1) -WENN(REST(ZEILE();3)>0;5;7);3)+7*WENN(REST(ZEILE();3)=0;3;WENN(REST(ZEILE();3)=2;3;REST(ZEILE(); 3)))
C23 =WERT(DATUM($H$1;GANZZAHL((ZEILE()-1)/3+1);1))-1-WOCHENTAG(DATUM($H$1;GANZZAHL((ZEILE()-1)/3+1);1) -WENN(REST(ZEILE();3)>0;5;7);3)+7*WENN(REST(ZEILE();3)=0;3;WENN(REST(ZEILE();3)=2;3;REST(ZEILE(); 3)))
C24 =WERT(DATUM($H$1;GANZZAHL((ZEILE()-1)/3+1);1))-1-WOCHENTAG(DATUM($H$1;GANZZAHL((ZEILE()-1)/3+1);1) -WENN(REST(ZEILE();3)>0;5;7);3)+7*WENN(REST(ZEILE();3)=0;3;WENN(REST(ZEILE();3)=2;3;REST(ZEILE(); 3)))

Tabellendarstellung in Foren


gruss hary
Anzeige
AW: @ Josef E.
20.01.2010 00:14:44
Josef
Hallo Christian,
du hast rech, aber wie Harry schon sagte, braucht er es so.
Der grund dafür ist einfach erklärt. Immer wenn der 1. eines Monats auf Sa oder So fällt,
dann ist der 3. Sonntag vor dem 3. Freitag. Der folgende Code berücksichtigt das.
Sub DatumSpezial()
  Dim intIndex As Integer, intYear As Integer, intDay As Long, intMonth As Integer
  Dim vntDate() As Variant
  
  intYear = Application.InputBox("Bitte das gewünschte Jahr eingeben", "Datumsfolge", Year(Date), Type:=1)
  
  Redim vntDate(1 To 1)
  
  If intYear < 1 Or intYear > 3999 Then Exit Sub
  For intMonth = 1 To 12
    For intDay = 1 To 22
      If Weekday(DateSerial(intYear, intMonth, intDay), 2) = 5 Then
        Redim Preserve vntDate(1 To UBound(vntDate) + IIf(UBound(vntDate) = 1, 2, 3))
        vntDate(UBound(vntDate) - 2) = Clng(DateSerial(intYear, intMonth, intDay))
        vntDate(UBound(vntDate) - 1) = Clng(DateSerial(intYear, intMonth, intDay + 14))
        vntDate(UBound(vntDate)) = Clng(DateSerial(intYear, intMonth, intDay + IIf(intDay > 5, 9, 16)))
        Exit For
      End If
    Next
  Next
  
  Range("A2").Resize(UBound(vntDate), 1) = Application.Transpose(vntDate)
End Sub

Gruß Sepp

Anzeige
Sepp, danke für die Aufklärung!! o.T.
20.01.2010 00:17:30
Christian
AW: @ Josef E. Danke auch owT.
20.01.2010 00:24:45
hary
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige