Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalte mit Datum von bestimmten Wochentagen

Spalte mit Datum von bestimmten Wochentagen
15.10.2016 17:49:54
bestimmten
Hallo an alle !
Bin heute das erste Mal hier und hoffe auf eine Lösung meines Problemes !
Danke schon an alle im voraus.
Ich habe eine Abrechnungstabelle von Dialysepatienten. Die Datumsspalte muß ich mit Datum eines Monates füllen aber nur bestimmte Wochentage eines Monates.
So z.B. Monat Oktober - nur Montage, Mittwoche oder Freitage und Dienstage, Donnerstage und Samstage. Habe bisher noch keine brauchbare Lösung gefunden.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte mit Datum von bestimmten Wochentagen
15.10.2016 18:16:51
bestimmten
Hey hier mal für Montag ich weiß zwar nicht genau was du willst aber kannst ja mal gucken
Gru? Basti
Sub dffd()
Dim D As Date
Dim Firstday As Date
Dim LastDay As Date
Dim x As Long
Firstday = "01.02.2016"
LastDay = Monatsletzter(Firstday)
x = 1
For D = Firstday To LastDay
Debug.Print Format(D, "DDDD")
If Format(D, "DDDD") = "Montag" Then
With ActiveSheet
.Cells(x, 1) = D
End With
x = x + 1
End If
Next
End Sub

Anzeige
AW: Spalte mit Datum von bestimmten Wochentagen
15.10.2016 18:18:06
bestimmten
Ach ja hier noch die Funktion für den Letzten Tag im Monat
Gruß basti

Function Monatsletzter(ByVal vDatum As Date) As Date
Monatsletzter = DateSerial(Year(vDatum), Month(vDatum) + 1, 0)
End Function

AW: Sorry, meinte Beitrag von Christian. owT
15.10.2016 18:20:49
Christian.
AW: Spalte mit Datum von bestimmten Wochentagen
15.10.2016 18:34:21
bestimmten
Hi,
war auch schon am Basteln:
Option Explicit
Sub mach0()
Call mach(Range("B2").Value, Range("B4"), "2,4,6")
Call mach(Range("B2").Value, Range("E4"), "3,5,7")
End Sub
Sub mach(d As Date, r As Range, typ As String)
Dim i&, z&, m&
m = Month(d)
While Month(d) = m
If InStr(typ, CStr(Weekday(d))) > 0 Then r.Offset(z).Value = d: z = z + 1
d = d + 1
Wend
End Sub

Die untere Sub macht, was man ihr sagt (also: Datumswert, der in meinem Test in B2 steht: 01.10.2016, dann die Zelle, wo die Ausgabe hinsoll und schließlich die Tage, die erwünscht sind, als String).
Ausgegeben werden die Datümer in den Spalten B und E, wobei ich rechts daneben (zur Überprüfung) nochmal den gleichen Wert stehen habe (mit Excel-Formel, einfach = Zelle links), mit Wochentag formatiert.
Datei: https://www.herber.de/bbs/user/108804.xlsm
Schöne Grüße,
Michael
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spalte mit Datum von bestimmten Wochentagen


Schritt-für-Schritt-Anleitung

Um in Excel nur bestimmte Wochentage anzuzeigen, kannst du die folgenden Schritte befolgen. Diese Anleitung geht davon aus, dass du mit Excel 2016 oder einer späteren Version arbeitest.

  1. Öffne ein neues Excel-Dokument.

  2. Gib das Startdatum in die Zelle B2 ein. Beispiel: 01.10.2016.

  3. Füge die folgenden VBA-Codes ein:

    Öffne den VBA-Editor mit ALT + F11 und füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul). Kopiere den folgenden Code in das Modul:

    Option Explicit
    Sub mach0()
       Call mach(Range("B2").Value, Range("B4"), "2,4,6") ' Montag, Mittwoch, Freitag
       Call mach(Range("B2").Value, Range("E4"), "3,5,7") ' Dienstag, Donnerstag, Samstag
    End Sub
    
    Sub mach(d As Date, r As Range, typ As String)
       Dim i&, z&, m&
       m = Month(d)
       While Month(d) = m
           If InStr(typ, CStr(Weekday(d))) > 0 Then r.Offset(z).Value = d: z = z + 1
           d = d + 1
       Wend
    End Sub
  4. Starte das Makro: Gehe zurück zu Excel, drücke ALT + F8, wähle mach0 aus und klicke auf „Ausführen“.

  5. Die gewünschten Wochentage werden in den Zellen B4 und E4 aufgelistet.


Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.
    Lösung: Stelle sicher, dass die Makros in Excel aktiviert sind (Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen).

  • Fehler: Es werden nicht die gewünschten Wochentage angezeigt.
    Lösung: Überprüfe die Parameter in der Call mach-Funktion. Die Zahlen stehen für die Wochentage (1 = Sonntag, 2 = Montag, ...).


Alternative Methoden

Wenn du keine VBA-Makros verwenden möchtest, kannst du auch die Funktion Wochentag in Kombination mit Wenn verwenden. Hier ist eine Formel, um nur Montage in einer Spalte anzuzeigen:

=Wenn(Wochentag(A1; 2)=1; A1; "")

Diese Formel überprüft, ob das Datum in Zelle A1 ein Montag ist (1 bedeutet Montag, wenn der Wochenbeginn auf Montag gesetzt ist).


Praktische Beispiele

  1. Excel alle Montage eines Jahres auflisten:
    Verwende den obigen VBA-Code, um alle Montage für ein beliebiges Jahr aufzulisten.

  2. Excel nur Freitage anzeigen:
    Ändere die Parameter in der Call mach-Funktion auf "6" für Freitage.

  3. Excel Datum fortlaufend nur bestimmte Wochentage:
    Nutze den VBA-Code, um ein Startdatum festzulegen und die gewünschten Wochentage automatisch zu generieren.


Tipps für Profis

  • Automatisierung: Du kannst die VBA-Funktion anpassen, um die gewünschten Wochentage für mehrere Monate automatisch zu generieren.
  • Datenvalidierung verwenden: Füge Dropdown-Listen hinzu, um den Benutzer die Auswahl der Wochentage zu ermöglichen.
  • Formatierung: Verwende bedingte Formatierungen, um die Wochentage visuell hervorzuheben.

FAQ: Häufige Fragen

1. Wie liste ich alle Tage in Excel als Datum in einem bestimmten Monat auf?
Verwende eine Schleife in VBA, um alle Tage eines Monats mit einer festen Start- und Enddatum zu generieren.

2. Kann ich auch nur Samstage anzeigen?
Ja, ändere einfach die Parameter im VBA-Code auf "7" für Samstage.

3. Wie kann ich die Wochentage automatisch ausfüllen?
Nutze die oben genannten VBA-Codes, um die Wochentage automatisch in Excel zu füllen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige