Anzeige
Archiv - Navigation
908to912
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
908to912
908to912
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Werktage aus Zeiträumen auflisten

Werktage aus Zeiträumen auflisten
30.09.2007 10:35:00
Fritz_W
Hallo Excelfreunde,
ich bitte euch (die VBA-Experten) um Unterstützung in folgender Angelegenheit:
In der Tabelle 1 sind - beginnend ab Zeile 2 - zeilenweise in den Spalten A (Beginn) und B (Ende) nacheinander bis zu zu 20 Zeiträume angegeben (eingetragen).
Ich möchte nun per Makro die Werktage der angegebenen Zeiträume in der Tabelle2 in der Spalte C - beginnend ab Zeile 2 - nacheinander in chronologischer Reihenfolge aufführen, wobei das Datum im Format (TTT TT.MM.JJJJ) formatiert sein sollte.
Zum besseren Verständnis lade ich eine Beispieldatei hoch, in der das gewünschte Ergebnis in Tabelle2 ersichtlich ist. Die Eintragungen in den Spalten A und B der Tabelle2 wären zwar wünschenswert, aber letztlich nicht so wichtig, wie die Auflistung der Werktage in Spalte C.
Für eure Hilfen vielen Dank im Voraus.
Fritz
https://www.herber.de/bbs/user/46445.xls

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werktage aus Zeiträumen auflisten
30.09.2007 11:36:09
Christian
Hallo Fritz,
so zum Bsp.
Gruß Christian

Option Explicit
Sub WD()
Dim wks As Worksheet
Dim i&, j&, k&, x&, z&
Dim d As Date
Dim bln As Boolean
z = 2
Set wks = Sheets("Tabelle2")
wks.Cells.Delete
With Sheets("Tabelle1")
For i = 2 To .Cells(Rows.Count, 2).End(xlUp).Row
k = 0
bln = 0
For j = .Cells(i, 2) To .Cells(i, 3)
d = CDate(.Cells(i, 2) + k)
If Weekday(d, 1) > 1 And Weekday(d, 1) 


AW: Werktage aus Zeiträumen auflisten
30.09.2007 11:58:38
Fritz_W
Hallo Christian,
ich möchte mich bei Dir ganz herzlich für deine Hilfe bedanken.
Dein Makro funktioniert einwandfrei und wie gewünscht.
Schönen Sonntag noch
Gruß
Fritz

Anzeige
Kleine Anpassung möglich?
30.09.2007 13:02:00
Fritz_W
Hallo Excelfreunde,
kann man das Makro dahingehend verändern, dass die Formatierungen (bedingte Formatierungen, auch die Spaltenbreiten) in der Tabelle2 sich durch die Ausführung des Makros nicht ändern, oder ist es problematisch, weil die Anzeige des jeweiligen Datums in der Spalte C in einem bestimmten Format eingefügt werden soll.
Vielen Dank im Voraus!
Gruß
Fritz

AW: Werktage aus Zeiträumen auflisten
30.09.2007 14:50:00
Peter
Hallo Fritz,
vielleicht so:


Option Explicit
Public Sub Werktage_Listen()
Dim WkSh_Q    As Worksheet
Dim WkSh_Z    As Worksheet
Dim lZeile_Q  As Long
Dim lZeile_Z  As Long
Dim dDatum    As Date
   Application.ScreenUpdating = False
   Set WkSh_Q = Worksheets("Tabelle1")
   Set WkSh_Z = Worksheets("Tabelle2")
   lZeile_Z = 2
   For lZeile_Q = 2 To WkSh_Q.Range("A65536").End(xlUp).Row
      If IsDate(WkSh_Q.Range("B" & lZeile_Q).Value) And _
         IsDate(WkSh_Q.Range("C" & lZeile_Q).Value) Then
         WkSh_Z.Range("A" & lZeile_Z).Value = WkSh_Q.Range("A" & lZeile_Q).Value
         dDatum = CDate(WkSh_Q.Range("B" & lZeile_Q).Value)
         Do
            If Weekday(dDatum) = 1 Or Weekday(dDatum) = 7 Then
               WkSh_Z.Range("C" & lZeile_Z).NumberFormat = "ddd dd/mm/yyyy"
               WkSh_Z.Range("C" & lZeile_Z).Value = dDatum
               lZeile_Z = lZeile_Z + 1
            End If
            dDatum = dDatum + 1
         Loop Until dDatum > CDate(WkSh_Q.Range("C" & lZeile_Q).Value)
      End If
   Next lZeile_Q
   Application.ScreenUpdating = True
End Su 


Gruß Peter

Anzeige
AW: Werktage aus Zeiträumen auflisten
30.09.2007 16:24:00
Fritz_W
Hallo Peter,
deine Lösung ist eine brauchbare Alternative:
Die Formatierungen bleiben - wie gewünscht - erhalten.
Die fehlenden Einträge in Spalte B kann ich über eine Formel eintragen lassen.
Vielen Dank und schöne Grüße
Fritz

AW: Werktage aus Zeiträumen auflisten
30.09.2007 16:46:00
Fritz_W
Hallo Peter,
mein Test des Makros war etwas oberflächlich.
Ich habe eben festgestellt, dass - statt der gewünschten Wochentage - die Wochenenden (Sa, So) der jeweiligen Zeiträume aufgelistet werden. Vermutlich ein Flüchtigkeitsfehler deinerseits.
Könntest du mir das Makro noch anpassen?
Vielen Dank im Voraus.
Gruß
Fritz

Anzeige
AW: Werktage aus Zeiträumen auflisten
30.09.2007 17:24:38
Peter
Hallo Fritz,
da habe ich dann wohl zu flüchtig gelesen.
ändere
If Weekday(dDatum) = 1 Or Weekday(dDatum) = 7 Then
in
If Weekday(dDatum) 1 And Weekday(dDatum) 7 Then
dann sollte es gehen.
Gruß Peter

AW: Werktage aus Zeiträumen auflisten
30.09.2007 17:28:49
Fritz_W
Hallo Peter,
kurze Rückmeldung: Jetzt funktioniert es wie gewünscht!
Nochmals besten Dank!
Schöne Grüße
Fritz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige