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

Freitage als leere Zeile einfügen

Freitage als leere Zeile einfügen
17.01.2022 10:06:08
Ugur
Hallo liebes Forum,
ich habe ein Problem, dass ich es nicht schaffe mir über VBA ein Makro zu erstellen, das mir leere Zeilen mit dem Datum der kommenden Freitage in Spalte AG einfügt. Ich habe es selbst versucht aber bekomme es nur hin, dass mir jeder Tag ausgegeben wird. Wie kann ein solches Kriterium, dass nur Freitage erscheinen sollen realisiert werden? die Freitage der nächsten 4 Monate wären sinnvoll. Ich habe bereits vieles versucht aber nichts möchte so wirklich funktionieren. daher hoffe ich, dass ich auf diesem Wege ein paar Tipps erhalten kann
Die Datei ist hier abgelegt:
https://www.herber.de/bbs/user/150431.xlsx
Es soll also folgendes können: Spalte AG durchlaufen und fehlende Freitage im Zeitraum der nächsten 4 Monate als leere Zeilen einfügen
ich hoffe es war verständlich und jemand kann mir das behilflich sein
Liebe Grüße und danke im Voraus

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Freitage als leere Zeile einfügen
17.01.2022 10:16:31
ugur
INFO: ich habe vergessen zu schreiben, dass die Zeilen in Abhängigkeit von Spalte A sein müssen. Dass also für jede Verk. NR. die leeren Zeilen der Freitage auftauchen müssen
bist du sicher
17.01.2022 10:23:35
UweD
, dass du die richtige Datei verlinkt hast?
In Spalte AG steht nichts
LG UweD
AW: Freitage als leere Zeile einfügen
17.01.2022 10:17:47
Oberschlumpf
Hi,
in deiner Bsp-Datei enthält Spalte AG aber gar keine Daten; es sind nur die Spalten A bis M mit Daten gefüllt.
Ciao
Thorsten
AW: Freitage als leere Zeile einfügen
17.01.2022 12:29:41
ugur
oh man heute ist echt der Wurm drin...
hier noch einmal:
https://www.herber.de/bbs/user/150437.xlsx
Anzeige
AW: Freitage als leere Zeile einfügen
17.01.2022 14:34:49
Rolf
Hallo Ugur
teste mal dies:

Sub Freitag()
Dim i As Integer
Dim iFreitag As Integer
Dim loLetzte As Long
loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For i = loLetzte + 1 To 3 Step -1
If Cells(i, 1)  Cells(i - 1, 1) Then      'andere Auftragsnummer
If Weekday(Cells(i - 1, 33), vbMonday)  5 Then     'noch kein Freitag vorhanden
Rows(i).Insert Shift:=xlDown
iFreitag = Cells(i - 1, 33) - Weekday(Cells(i - 1, 33)) + 6    'nächsten Freitag ermitteln
Cells(i, 33) = iFreitag           'Datum des Freitags eintragen
'Cells(i, 1) = Cells(i - 1, 1)    'bei Bedarf Auftragsnummer eintragen
End If
End If
Next
End Sub
Gruß Rolf
Anzeige
AW: Freitage als leere Zeile einfügen
18.01.2022 08:08:21
ugur
Guten Morgen Rolf,
Danke für deinen Beitrag. Ich habe das Makro ausprobiert, jedoch erhalte ich in der Zeile
iFreitag = Cells(i - 1, 33) - Weekday(Cells(i - 1, 33)) + 6 'nächsten Freitag ermitteln
den Fehler "Überlauf"
ich bin mir nicht ganz sicher, kann es an der Variable liegen?
AW: Freitage als leere Zeile einfügen
18.01.2022 09:16:20
UweD
Hallo
Der Freitag ist ein Datum und damit der Zahlenwert schon größer als 32.767 (Integergrenze)
Deklariere als Long..
Ungeprüft...

Sub Freitag()
Dim i As Integer
Dim loFreitag As Long
Dim loLetzte As Long
loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For i = loLetzte + 1 To 3 Step -1
If Cells(i, 1)  Cells(i - 1, 1) Then      'andere Auftragsnummer
If Weekday(Cells(i - 1, 33), vbMonday)  5 Then     'noch kein Freitag vorhanden
Rows(i).Insert Shift:=xlDown
loFreitag = Cells(i - 1, 33) - Weekday(Cells(i - 1, 33)) + 6    'nächsten Freitag ermitteln
Cells(i, 33) = loFreitag           'Datum des Freitags eintragen
'Cells(i, 1) = Cells(i - 1, 1)    'bei Bedarf Auftragsnummer eintragen
End If
End If
Next
End Sub
LG UweD
Anzeige
AW: Dim iFreitag as Long
18.01.2022 09:16:27
Rolf
Hallo Ugur,
sorry, mein Fehler, ich hatte zum testen die Variable als long deklariert und später geändert, ohne dran zu denken,
dass Integer nur bis 32767 definiert ist. Die Datumszahlen liegen ja deutlich drüber.
Setze in der DIM-Anweisung iFreitag auf Long, dann sollte es passen.
Gruß Rolf
AW: Dim iFreitag as Long
18.01.2022 09:45:25
ugur
Moin,
ich habe auch etwas daran herumprobiert und auch die Variable auf Long geändert. Es funktioniert nun wirklich einwandfrei. Das einzige Problem, das ich noch habe ist, dass meine Originaldatei extrem viele Zeilen hat und daher das Makro auch entsprechend länger braucht alles einzufügen. Gibt es eine Möglichkeit das Makro zu begrenzen auf z.B alle Zeilen, die innerhalb der nächsten 4 Monate liegen?
Anzeige
AW: Dim iFreitag as Long
18.01.2022 10:18:28
Rolf
Hallo Ugur,
hast Du schon
Application.ScreenUpdating = False
probiert?
wenn das nicht reicht, könntest Du z.B. noch nach dem For i = LoLetzte....
If Cells(i, 33) < Date + 120 Then
einbauen.
-das 'End If' vor dem 'Next' natürlich nicht vergessen ;-)
Gruß Rolf
Korrektur: If Cells(i - 1, 33) < Date + 120 Then
18.01.2022 10:25:18
Rolf

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige