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

automatische vorbelegung

automatische vorbelegung
27.04.2021 11:20:46
Stefan

ich habe bräuchte bitte Unterstützung bei folgender VBA.
Ich habe eine Excel mit Monatsreitern.
In Zelle C2:AG2 ist das Datum.
Unter der Datumszeile bräuchte eine automatische Befüllung der Wochenenden und Feiertage mit z.B. einem X (als Beispiel C4:AG5)
Kann dies so programmiert werden dass sich der Bereich C4:AG5 erweitert wenn ich dazwischen eine Zeile einfüge?
Vielen Dank im Voraus
Gruß
Stefan
nach oben  nach unten
Hallo Stefan,
wo sollen die Feiertage herkommen, oder sollen die per VBA berechnet werden?
Am einfachsten eine Mustermappe hochladen.
Gruß
Nepumuk
nach oben  nach unten
Hallo,
die Feiertage habe ich in einem extra Reiter hinterlegt.
https://www.herber.de/bbs/user/145633.xlsm
Danke schon mal, Gruß
Stefan
nach oben  nach unten
Hallo Stefan,
teste mal:
Option Explicit
Public Sub Insert_X()
Const START_ROW As Long = 4
Const START_COLUMN As Long = 3
Const END_COLUMN As Long = 33
Const INSERT_VALUE As String = "X"
Dim lngMonth As Long
Dim lngRow As Long, lngColumn As Long
Application.EnableEvents = False
For lngMonth = 1 To 12
With Worksheets(MonthName(lngMonth))
For lngRow = START_ROW To .Rows.Count
If .Cells(lngRow, 1).MergeCells Then Exit For
Next
lngRow = lngRow - 1
For lngColumn = START_COLUMN To END_COLUMN
If IsDate(.Cells(2, lngColumn).Value) Then
If Weekday(.Cells(2, lngColumn).Value) = vbSaturday Or _
Weekday(.Cells(2, lngColumn).Value) = vbSunday Then
.Range(.Cells(START_ROW, lngColumn), _
.Cells(lngRow, lngColumn)).Value = INSERT_VALUE
Else
If Not IsError(Application.Match(CLng(.Cells(2, lngColumn).Value), _
Worksheets("VBA").Columns(2), False)) Then _
.Range(.Cells(START_ROW, lngColumn), _
.Cells(lngRow, lngColumn)).Value = INSERT_VALUE
End If
End If
Next
End With
Next
Application.EnableEvents = True
End Sub
Gruß
Nepumuk
nach oben  nach unten
Hi Nepumuk,
ich habe dein VBA in mein Modul 2 kopiert.
Wenn ich einen neue Zeile einfüge passiert leider nichts.
Wenn ich das Makro mit F8 teste dann werden nach und nach nur die ersten beiden Zeilen befüllt (da aber wie gewünscht)
Ich kenne mich leider viel zu wenig mit VBA aus, um hier einen Fehler erkennen zu können.
Gruß
Stefan
nach oben  nach unten
Hallo Stefan,
ist die Zelle in Spalte A der neuen Zeile eine verbundene Zelle? Denn danach suche ich um zwischen den verbundenen Zellen in Zeile 3 und in deiner Beispielmappe Zeile 6 die X'e einzufügen.
Gruß
Nepumuk
nach oben  nach unten
Hallo,
nein verbundene Zellen habe ich hier nicht.
Ist genau so wie in meiner Beispielmappe.
Gruß
Stefan
nach oben  nach unten
Hallo Stefan,
kann ich nicht nachvollziehen. Bei mir trägt das Makro auch in drei oder 4 Zeilen die X'e ein.
Gruß
Nepumuk
nach oben  nach unten
Hallo Nepumuk,
sorry das war mein Fehler. In den Monatsreitern habe ich dann verbundene Zellen drinnen.
Die Bereiche zwischen den verbundenen Zellen ändern sich allerdings immer wieder (Anzahl Zeilen)
Ich hab mal einen Monatsreiter als Beispiel angehängt.
https://www.herber.de/bbs/user/145747.xlsm
Gruß
Stefan
nach oben  nach unten
Hallo Stefan,
in welche Zeilen sollen nun das X eingetragen werden?
Gruß
Nepumuk
Hallo Nepumuk,
leider konnte ich in der ursprünglichen Unterhaltung nicht mehr antworten.
Das x soll in allen Monatsreitern eingetragen werden (Januar...Dezember).
Immer von C4:AG5; C7:AG8; C10:AG11; C13:AG14; C16:AG17; C19:AG20; C22:AG23; C25:AG26
Zwischen diesen Bereichen werden aber immer wieder Zeilen eingefügt oder gelöscht, sodass sich der Bereich immer verändert.
Gruß
Stefan

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
kleine Anregung
27.04.2021 11:59:10
lupo1
Gehe zu der vorigen Unterhaltung (im Archiv),
rechtsklicke dort auf dem ersten Titel (also dem Beitrag an sich) und
speichere den Link.
Dann postest Du ihn (Strg-V) in Deiner neuen Unterhaltung.
Das nennt man dann Internet.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige