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

Weekday-Funktion VBA-Makro

Forumthread: Weekday-Funktion VBA-Makro

Weekday-Funktion VBA-Makro
24.06.2020 17:36:20
Gehard
Hallo zusammen,
ich habe in einer Tabelle ein Problem mit dem Datum und kommen einfach nicht mehr weiter.
In einer Spalten befindet sich ausschließlich Daten (Mehrzahl von Datum).
Ich möchte jetzt mit meinem Makro jedes Datum, dass auf einen Samstag fällt auf Freitag zurücksetzten lassen.
Ich spiele jetzt schon eine Weile mit der Weekday-Funktion herum aber komme einfach nicht weiter.
Egal wie ich ansetzte erhalte ich Fehlermeldungen wie z.B. "Typen unverträglich".
Ich wollte die Spalte der Tabelle von n = 1 bis sagen wir mal 10000 durchgehen und jeweils wenn der Weekday des jeweiligen Datum einem Samstag entspricht, einen Tag von Datum abziehen.
Vielleich gibt es hier ja einen viel einfacheren Ansatz oder eine Lösung für meinen Ansatz.
Vielen Dank schon einmal.
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Weekday-Funktion VBA-Makro
24.06.2020 17:59:15
Werner
Hallo,
so:
Option Explicit
Sub Schaltfläche1_Klicken()
Dim i As Long, raBereich As Range
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
For i = 1 To .Cells(.Rows.Count, "A").End(xlUp).Row
If Weekday(.Cells(i, "A")) = 7 Then
If raBereich Is Nothing Then
Set raBereich = .Cells(i, "A")
Else
Set raBereich = Union(raBereich, .Cells(i, "A"))
End If
End If
Next i
If Not raBereich Is Nothing Then
raBereich = raBereich - 1
End If
End With
Set raBereich = Nothing
End Sub
Gruß Werner
Anzeige
AW: Weekday-Funktion VBA-Makro
25.06.2020 11:22:23
Gehard
Hallo Werner,
vielen Dank für die schnelle Antwort.
Ich habe damit jetzt folgendes Problem, was wahrscheinlich darauf zurückzuführen ist, dass ich mich vielleicht nicht ganze korrekt ausgedrückt habe.
Das Makro bewirkt, dass alle Samstage auf den als erstes ermittelten Freitag zurück gesetzt werden.
Ich habe z.B. in der Datumsspalte Daten von 01.06.2020 - 25.06.2020. Jetzt werden alle meine Samstage auf den 05.06.2020 zurück gesetzt, weil das der zuerst ermittelte Freitag ist.
Ich möchte aber, dass die Samstage jeweils auf den vorangegangenen Freitag zurück gesetzt werden.
So würde der 06.06.20 auf den 05.06.20 zurück gesetzt, der 13.06.20 auf den 12.06.20 usw.
Wie müsste das Makro abgeändert werden, damit es die Samstage jeweils auf den vorangegangenen Freitag setzt?
Anzeige
AW: Weekday-Funktion VBA-Makro
25.06.2020 12:44:06
Werner
Hallo,
dann mit Daniels Methode (die du einfach mal so ignoriert hast) per Formel.
Option Explicit
Sub Schaltfläche1_Klicken()
Dim loSpalte As Long, loLetzte As Long
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
loSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1).Column
loLetzte = .Cells(.Rows.Count, "A").End(xlUp).Row
.Range(.Cells(1, loSpalte), .Cells(loLetzte, loSpalte)).FormulaLocal = _
"=A1-(WOCHENTAG(A1;2)=6)"
.Range(.Cells(1, loSpalte), .Cells(loLetzte, loSpalte)).Copy
.Range("A1").PasteSpecial Paste:=xlPasteValues
.Columns(loSpalte).ClearContents
Application.CutCopyMode = False
End With
End Sub
Gruß Werner
Anzeige
AW: Weekday-Funktion VBA-Makro
25.06.2020 16:23:20
Gehard
Hallo Werner,
hall Daniel,
ich habe alles auf meine Tabelle angepasst und es funktioniert jetzt.
Vielen Dank für eure Hilfe.
Gerne u. Danke für die Rückmeldung. o.w.T.
25.06.2020 16:28:53
Werner
AW: Weekday-Funktion VBA-Makro
24.06.2020 18:05:01
Daniel
Hi
Es ist schwer zu sagen was du falsch gemacht hast, wenn du uns nicht zeigt, was du gemacht hast.
Auch müsste man wissen, was du tatsächlich für Daten hast, echte Datumswerte oder Texte, die wie solche aussehen.
Bei Excel gut sollte es dir aber nicht schwer fallen, eine Formellösung für diese Aufgabe zu erstellen.
=A1-Wenn(Wochentag(A1;2)=6;0;1
Oder als kurzform:
=A1-(Wochentag(A1;2)=6)
Oder ohne Wochentag:
=A1-(Text(A1;"TTT")="Sa")
In VBA programmiert man dann einfach nur das Einfügen der Formel (der Rekorder hilft), sowie das Kopieren und Einfügen der Werte an der gewünschten stelle.
Gruß Daniel
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18