Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilenfreigabe ab Bestimmten Datum


Betrifft: Zeilenfreigabe ab Bestimmten Datum von: Micha
Geschrieben am: 21.10.2019 13:34:28

Hallo,


ich habe eine Liste in denen ich Bestellungen eingebe.(Spalten C-K)

Immer 40 Zeilen für z.B. KW 01(Zeile 3 bis 42) 40 Zeilen KW02 (Zeile 45 bis 84) usw, bis KW 52.

Jetzt möchte ich, dass Zeilen die weiter als 11 Wochen in der Zukunft

liegen gesperrt werden und erst wenn das Wochenfenster erreicht ist zu Bearbeitung

freigegeben werden. (aktuelle Datum + 11 Wochen)

Habe dazu leider nirgendwo etwas gefunden und mit Gültigkeit hat es leider auch nicht funktioniert.

Vieleicht habt ihr ja eine Idee.


Gruß Micha

  

Betrifft: AW: Zeilenfreigabe ab Bestimmten Datum von: fcs
Geschrieben am: 21.10.2019 16:04:49

Hallo Micha,

man könnte es wie folgt lösen:

1. mit einem Ereignismakro das beim Öffnen der Datei gestartet wird (Workbook_Open)

2. Das Makro ermittelt auf Basis des sktuellen Datums die Nummer der Zeile bis zu der die Eingabezellen entspeert werden sollen.
3. Blattschutz wird aufgehoben
4. alle Zellen werden gesperrt.

5. gewünschter Eingabebereich wird entsperrt
6. Blattschutz wird wieder aktiviert.

Zusätzlich könnte man noch die Zeilen mit den gesperrten Zellen ausblenden.

LG
Franz

'Ereignismakro unter DieseArbeitsmappe
Private Sub Workbook_Open()
    Dim wks As Worksheet
    Dim Zeile_L As Long, Zeile_L2 As Long
    Dim Startdatum
    Dim Zei_pro_KW As Long, Zei_1 As Long
    Set wks = Me.Worksheets("Tabelle5") 'name anpassen
    Zei_1 = 3           '1. Zeile der 1. KW in Liste
    Zei_pro_KW = 40     'Anzahl zeilen pro KW
    With wks
        Startdatum = .Range("B1").Value 'Zelle mit Datum des 1. Tages der 1. KW in der Liste
        Zeile_L = Application.WorksheetFunction.RoundUp((Date - Startdatum) / 7, 0) *  _
Zei_pro_KW _
                + 11 * Zei_pro_KW + Zei_1 - 1
        .Unprotect
.Rows.Hidden = False 'alle Zeile einblenden - optional
        .Cells.Locked = True 'alle Zellen sperren
        Zeile_L2 = .UsedRange.Row + .UsedRange.Rows.Count - 1
        .Range(.Cells(Zei_1, 1), .Cells(Zeile_L, 4)).Locked = False 'Eingabezellen entsperren
.Range(.Rows(Zeile_L + 1), .Rows(Zeile_L2)).Hidden = True 'Zeilen mit gesperrte Zellen  _
ausblenden - optional
        .Protect
    End With
End Sub



  

Betrifft: AW: Zeilenfreigabe ab Bestimmten Datum von: Micha
Geschrieben am: 22.10.2019 09:27:37

Hallo Franz,

Danke für die schnelle Antwort. Werde es ausprobieren und eine Rückmeldung geben.

Gruß Micha


  

Betrifft: AW: Dazu muss der Beitrag nicht offen bleiben... von: EtoPHG
Geschrieben am: 22.10.2019 09:37:32

Micha,

Du hast eine Lösung bekommen und willst später Rückmeldung geben. Dann schliesse doch bitte den Beitrag, den warum sollten sich andere Helfer bis zu deiner Antwort noch den Kopf zerbrechen?
Wenn die Lösung nicht deinen Erwartungen entspricht, kannst du den Beitrag ja wieder auf offen stellen!

Gruess Hansueli


Beiträge aus dem Excel-Forum zum Thema "Zeilenfreigabe ab Bestimmten Datum"