Thema Datum  Von Nutzer Rating
Antwort
26.07.2017 21:28:38 boby17
NotSolved
26.07.2017 23:46:18 Ben
Solved
27.07.2017 22:29:35 boby17
NotSolved
27.07.2017 23:13:30 Ben
NotSolved
27.07.2017 23:23:39 Ben
NotSolved
28.07.2017 07:48:22 boby17
NotSolved
28.07.2017 11:44:15 Ben
Solved
31.07.2017 18:10:00 Boby17
NotSolved
31.07.2017 19:08:48 Ben
Solved
15.08.2017 20:34:01 Boby17
NotSolved
Rot 30Tage review anpassen und archivieren
16.08.2017 12:31:39 Ben
NotSolved

Ansicht des Beitrags:
Von:
Ben
Datum:
16.08.2017 12:31:39
Views:
589
Rating: Antwort:
  Ja
Thema:
30Tage review anpassen und archivieren

Hallo,

auch das sollte relativ leicht zu bewältigen sein:

Option Explicit

Private Function DeleteAF(ByVal lngRow As Long) As Boolean
    Dim wsh As Worksheet
    Dim rng As Range
    Dim iCol As Integer
    Dim bEmpty As Boolean
    Set wsh = ActiveWorkbook.Worksheets(1)
    bEmpty = True
    DeleteAF = CBool(Not wsh.Cells(lngRow, 3).Value = Date)
    If DeleteAF Then
        For iCol = 32 To 3 Step -1
            With wsh.Cells(lngRow, iCol)
                If Not .Locked Or Not wsh.ProtectContents Then
                    If iCol = 3 Then
                        If Not bEmpty Then
                            If lngRow = 2 Then
                                .Value = Date
                            Else
                                .ClearContents
                                If Not wsh.ProtectContents Then
                                    .NumberFormat = "General"
                                End If
                            End If
                        End If
                    Else
                        If IsEmpty(.Offset(ColumnOffset:=-1).Value) Then
                            .ClearContents
                            If Not wsh.ProtectContents Then
                                .NumberFormat = "General"
                            End If
                        Else
                            .Value = .Offset(ColumnOffset:=-1).Value
                            bEmpty = False
                        End If
                    End If
                End If
            End With
        Next
    End If
End Function
 
Sub FixAll()
    Dim iRow As Integer
    Dim myCalc As XlCalculation
    myCalc = Application.Calculation
    Application.Calculation = xlManual
    For iRow = 2 To 30
        If Not DeleteAF(iRow) Then
            MsgBox "Der Befehl wurde heute bereits ausgeführt!", vbCritical
            Exit For
        End If
    Next
    Application.Calculate
    Application.Calculation = myCalc
End Sub

Hierbei muss allerdings die Einschränkung in Kauf genommen werden ,dass Zahlenformate nicht übernommen werden.

Alternativ könnte man auch den Blattschutz in der Sub FixAll am Anfang aufheben und am Ende wieder setzen:

ActiveSheet.Unprotect ' Schutz Aufheben

'...

' Schutz setzen:
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Getestet mit Excel 2013

LG, Ben


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
26.07.2017 21:28:38 boby17
NotSolved
26.07.2017 23:46:18 Ben
Solved
27.07.2017 22:29:35 boby17
NotSolved
27.07.2017 23:13:30 Ben
NotSolved
27.07.2017 23:23:39 Ben
NotSolved
28.07.2017 07:48:22 boby17
NotSolved
28.07.2017 11:44:15 Ben
Solved
31.07.2017 18:10:00 Boby17
NotSolved
31.07.2017 19:08:48 Ben
Solved
15.08.2017 20:34:01 Boby17
NotSolved
Rot 30Tage review anpassen und archivieren
16.08.2017 12:31:39 Ben
NotSolved