Datum-Counter und wieder reseten

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von aNgstt.

    Datum-Counter und wieder reseten

    Hallo zusammen,

    ich hätte da ein frage/bitte, eventuell könnte einer von euch dabei helfen.

    Ich hab eine Liste wo ein Datum hinterlegt ist.

    imgur.com/a/yLEuh3x

    Ihr seht im o.g. Link einmal das Datum und danach die Zahl/Tage wann der letzte Eintrag war. Diesen würde ich gerne mit den Button rechts danaben reseten - also auf 0 zurck setzen.
    Der dann wieder Tag für Tag nach oben sich korrigiert.

    Visual Basic-Quellcode

    1. Datum 1.10.2021 - resetet
    2. vorher z.b. 20 Tage und jetzt wieder 3, da wir den 4.10.21 haben usw.



    Jetzt habe ich etwas hier im Forum gefunden, was ungefähr das ist was ich suche.

    Visual Basic-Quellcode

    1. Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    2. If Not IsEmpty(Cell) Then If IsDate(Cell.Value) Then n = n + 1
    3. Call AUD_CAD_TageZählen
    4. Cells(22, 2) = Date
    5. End If
    6. End Sub
    7. Sub AUD_CAD_TageZählen()
    8. n = 0
    9. For Each Cell In Range("D2:D129" & Cells(Rows.Count, 1).End(xlUp).Row)
    10. If Not IsEmpty(Cell) Then If IsDate(Cell.Value) Then n = n + 1
    11. Next
    12. Range("D129").Value = n
    13. End Sub


    Das Datum muss sich nicht ändern, es ist nur der Ausgangspunkt für mich. Jedoch die Tage nach dem letzten Eintrag rechts davon.
    Das Script oben funzt soweit so gut, jedoch müsste ich für jeden Eintrag immer wieder ein neues Makro schreiben

    Visual Basic-Quellcode

    1. Range ("D128")
    2. Range ("D129") usw.


    Gibt es ne möglichkeit das hinter jeder Spalte ein Button aufzubauen und diesen nur mit einen Makro zu versehen?

    Ich hoffe das ist verständlich, wonach ich suche.

    Mfg.

    CodeTags gesetzt ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    aNgstt schrieb:

    Gibt es ne möglichkeit das hinter jeder Spalte ein Button aufzubauen und diesen nur mit einen Makro zu versehen?
    Hunderte Buttons zu integrieren ist zum einen schlechter Stil, zum anderen nagt es an der Performance.

    Fange das Cell-DoubleClick-Event ab und entscheide dort, ob und was du machen willst.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hi,
    ja finde ich persönlich auch, habe aber für die Aufgabe die das einsetzen möchte, sowas von nöten.

    Da kam mir folgende Idee, die auch funktioniert.

    Visual Basic-Quellcode

    1. Sub AnNull()
    2. Dim rngGefunden As Range, rngBereich As Range
    3. Dim strErtser As String
    4. Dim i As Long
    5. With Sheets("Data")
    6. Set rngBereich = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row)
    7. End With
    8. Set rngGefunden = rngBereich.Find("x", , LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    9. If Not rngGefunden Is Nothing Then
    10. strErtser = rngGefunden.Address
    11. Do
    12. rngGefunden.Offset(0, -1) = 0
    13. Set rngGefunden = rngBereich.FindNext(rngGefunden)
    14. Loop Until rngGefunden Is Nothing Or rngGefunden.Address = strErtser
    15. End If
    16. End Sub
    17. Sub SetDate()
    18. Dim rngGefunden As Range, rngBereich As Range
    19. Dim strErtser As String
    20. Dim i As Long
    21. With Sheets("Data")
    22. Set rngBereich = .Range("D2:D" & .Range("D" & Rows.Count).End(xlUp).Row)
    23. End With
    24. Set rngGefunden = rngBereich.Find("0", , LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True)
    25. If Not rngGefunden Is Nothing Then
    26. strErtser = rngGefunden.Address
    27. Do
    28. rngGefunden.Offset(0, -1) = Date
    29. Set rngGefunden = rngBereich.FindNext(rngGefunden)
    30. Loop Until rngGefunden Is Nothing Or rngGefunden.Address = strErtser
    31. End If
    32. End Sub
    33. Sub Clear()
    34. Range("E2:E600").Select
    35. Selection.ClearContents
    36. End Sub


    Visual Basic-Quellcode

    1. Arbeitsmappe
    2. Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    3. Call AnNull
    4. Call SetDate
    5. Call Clear
    6. End Sub


    Nur leider countet der Zähler da nicht hoch.

    Nee Idee? Wahrscheinlich nur eine zeile die ich vergessen habe.

    Mfg.

    CodeTags gesetzt ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()