Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
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

plus ein Tag

plus ein Tag
Tina
Hallo,
ich habe von einem Forumsmitglied einen VBA Text bekommen, der bewirkt das ein Datum in eine Zelle gesetzt wird und nur wenn es Samstag oder Sonntag ist, wird der nächste Montag gesetzt. Ich kenn diesen VBA Befehl nicht und kann ihn auch nicht richtig umändern. Ich möchte das fortlaufend in einer Spalte der nächste Tag runtergeschrieben wird, eigentlich wie bei einem Kalender. Bei diesem VBA Text wird allerdings immer der gleiche Tag runtergeschrieben. wenn ich irgendwo +1 einbaue, lässt er immer Sonntag und Montag weg und nicht Samstag und Sonntag. Weiß jemand Rat?
'fortlaufendes Datum eintragen
For i = 4 To 125
TB2.Range(TB2.Cells(i, 2), TB2.Cells(i, s)).Clear
TB2.Cells(i, 1) = TB2.Cells(i - 1, 1) + Application.Max(0, 2 - TB2.Cells(i - 1, 1) Mod 7)
If Weekday(TB2.Cells(i, 1)) = 6 Then TB2.Cells(i, 2).Resize(, s - 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
Next i
Gruß Tina

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

Betreff
Benutzer
Anzeige
AW: plus ein Tag
23.03.2012 13:14:46
Rudi
Hallo,
For i = 4 To 125
TB2.Range(TB2.Cells(i, 2), TB2.Cells(i, s)).Clear
TB2.Cells(i, 1) = TB2.Cells(i - 1, 1) + 1
If Weekday(TB2.Cells(i, 1)) = 6 Then TB2.Cells(i, 2).Resize(, s - 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
Next i
Gruß
Rudi
plus ein Tag - ohne Sa und So
23.03.2012 14:00:55
Erich
Hi Tina,
warum bleibst du mit deiner Zusatzfrage nicht im alten Thread? Ich meine diesen:
https://www.herber.de/forum/archiv/1252to1256/t1255919.htm
Probier mal

Sub aTest()
Dim i As Long
Dim s As Long
s = 3
TB2.Range(TB2.Cells(4, 2), TB2.Cells(125, s)).ClearContents   ' auf einmal, vor der Schleife
For i = 4 To 125
TB2.Cells(i, 1) = TB2.Cells(i - 1, 1) + 1 + Application.Max(0, 2 - (1 + TB2.Cells(i - 1,  _
1)) Mod 7)
If Weekday(TB2.Cells(i, 1)) = 6 Then _
TB2.Cells(i, 2).Resize(, s - 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
Next i
End Sub
Wie du siehst, habe ich zwei Mal "+ 1" ergänzt.
Den Wert von s habe ich zum Testen willkürlich vorgegeben.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich - und: Schönes Wochenende allerseits!
Anzeige
plus ein Tag - ohne Sa und So
23.03.2012 14:02:48
Erich
Hi Tina,
noch mal ohne verhunzten Zeilenumbruch im Code:

Sub aTest()
Dim i As Long
Dim s As Long
s = 3
TB2.Range(TB2.Cells(4, 2), TB2.Cells(125, s)).ClearContents   ' auf einmal, vor der Schleife
For i = 4 To 125
TB2.Cells(i, 1) = TB2.Cells(i - 1, 1) + 1 _
+ Application.Max(0, 2 - (1 + TB2.Cells(i - 1, 1)) Mod 7)
If Weekday(TB2.Cells(i, 1)) = 6 Then _
TB2.Cells(i, 2).Resize(, s - 2).Borders(xlEdgeBottom).LineStyle = xlContinuous
Next i
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich - und: Schönes Wochenende allerseits!
AW: plus ein Tag - ohne Sa und So
23.03.2012 16:16:01
Tina
Hallo,
danke Erich, ich dachte der alte Thead ist erledigt, darum....
vielen Dank, ich komm erst Sonntag dazu es auszuprobieren, aber trotzdem schonmal vielen Dank für deine schnelle Hilfe :o)
Gruß
Tina
Anzeige
verständlicher und schneller
23.03.2012 17:09:35
Erich
Hi Tina,
dumm von mir war, Clear in ClearContents zu ändern. Hab erst später bemerkt, dass es um das Löschen der Rahmen geht.
Hier zwei Versionen. Die erste mit dem längeren Code ist vielleicht etwas verständlicher.
Sicher läuft sie schneller, da nicht jede Tabellezelle einzeln bearbeitet wird, sondern alle Werte
bzw. alle Rahmen auf einen Schlag in das Tabellenblatt geschrieben werden.

Sub aTestS()
Dim arA(1 To 123, 1 To 1) As Date, rngS As Range
Dim i As Long, s As Long, lngP As Long
s = 4
With TB2
arA(1, 1) = .Cells(3, 1).Value               ' Startdatum
For i = 2 To 123
arA(i, 1) = arA(i - 1, 1) + 1             ' + 1 Tag
lngP = arA(i, 1) Mod 7                    ' lngP ist ähnlich Weekday
If lngP 
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige
AW: verständlicher und schneller
28.03.2012 19:46:08
Tina
sorry, dass ich mich erst jetzt melde, ich musste so viel arbeiten...
ich habe dein VBA eingebaut und noch ein bissl dran rumgespielt.
Läuft eins A.
Danke für deine Mühe, war sicher viel Arbeit.
LG
Tina

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige