1.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,

ich brauche Eure Hilfe wieder einmal.

Ich möchte das die Wochenenden wegelassen wird!
Kann mir jmd. helfen.

Bsp.: so muss es später aussehen

1 2 3 4 5 8 9
Mo Di Mi Do Fr. Mo Di .... usw.

Das habe ich im Web gefunden

Dim Jahr As String, neuerMonat As String
Dim Monat As Integer, Tag As Integer, AnzTage As Integer
Dim d As Date
Dim wks As Worksheet
Dim i As Integer

'Anzahl Tage des aktuellen Monats
AnzTage = DateSerial(Year(Now), Month(Now) + 1, 1) _
- DateSerial(Year(Now), Month(Now), 1)

Range("D6:ah6").NumberFormat = "d"
Range("D6:ah6").HorizontalAlignment = xlCenter
Range("D5:ah5").NumberFormat = "ddd"

For Tag = 1 To AnzTage
With Cells(6, Tag + 3)
d = DateSerial(Jahr, Monat, Tag)

If Weekday(d) = 1 Or Weekday(d) = 7 Then
'prüfen ob Sa / So wenn ja Hintergrundfarbe grün
'Range(Cells(3, Tag + 3), (Cells(40, Tag + 3))).Interior.ColorIndex = 35 ' das will ich NICHT

End If
.Value = d


Cells(5, Tag + 3) = d
End With

Next Tag

Gruß, Ronja

5 Antworten

0 Punkte
Beantwortet von flupo Profi (17.8k Punkte)
Am Einfachsten lässt sich das mit "Autoausfüllen" realisieren.
Du musst nur einen entsprechenden Zyklus (also Mo-Fr und danach noch ein Mo) manuell eingeben. Dann markierst du das alles und kannst die Reihe weiter ausziehen (Anfasser an der Ecke unten rechts).

Gruß Flupo
0 Punkte
Beantwortet von
ich möchte doch als vba haben !!
wichtig !
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Ronja,

dein Code könnte z.B. so aussehen:

Sub Wochentage()

Dim Jahr As String, neuerMonat As String
Dim Monat As Integer, Tag As Integer, AnzTage As Integer
Dim d As Date
Dim wks As Worksheet
Dim i As Integer


'Hier werden das aktuelle Jahr und der laufende Monat festgelegt; ist ggf. zu ändern
Jahr = Year(Now)
Monat = Month(Now)

'Anzahl Tage des Monats werden berechnet
AnzTage = DateSerial(Year(Jahr), Month(Monat) + 1, 1) _
- DateSerial(Year(Jahr), Month(Monat), 1)


'Zellbereich für Ausgabe wird formatiert
Range("D6:ah6").NumberFormat = "d"
Range("D6:ah6").HorizontalAlignment = xlCenter
Range("D5:ah5").NumberFormat = "ddd"

'Wochentage werden auf Tabellenblatt geschrieben
For Tag = 1 To AnzTage
d = DateSerial(Jahr, Monat, Tag)

If Weekday(d) > 1 And Weekday(d) < 7 Then
i = i + 1
Cells(6, i + 3).Value = d
Cells(5, i + 3) = d
End If

Next Tag

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von
PERFEKT M.O.

so wollte ich es haben

Vielen Lieben Dank

freu :-))
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Ronja,

danke für die Rückmeldung.

Gruß

M.O.
...