Ab Datum, folgende Tage fortlaufend zählen.

  • Excel

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Cutter2.

    Hallo INOPIAE !

    Vielen, vieln Dank für Deine schnelle Antwort. Aber leider rauschen wir jetzt vollkommen aneinander vorbei.

    Also mal anders:

    1. In der Zelle A22 befindet sich permanent das aktuelle Datum.
    2. Wenn sich der Wert in Zelle B23 ändert, soll ein Makro (Tage_zählen) aufgerufen und mit dem Zählen der Tage ab dem aktuellen Datum in A22 begonnen werden bis sich der Wert in B23 abermals ändert und das Zählen von neuem beginnt.
    3. Das Makro wird also durch ein Change-Ereignis gestartet.

    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    If (Target.Address = "$B$24") Or (Target.Address = "$B$26") Then
    Call Tage_zählen
    End If
    End Sub

    Um dieses Makro: "Tage_zählen" geht es. Kanst du mir da weiter helfen?

    Gruss Cutter2
    Hallo INOPIAE !

    Das Makro "Tage_zählen" existiert doch noch garnicht. Das ist nur der Name. Ich hab es nicht hin bekommen und hab auch im Netz nichts passendes gefunden. Darum die Frage ob du mir weiter helfen kanst.

    Ich arbeite noch mit Excel 2000.

    Gruss Cutter2
    Hallo petaod !

    Vielen Dank für Deine Antwort. Aber eine Formel hilft hier nicht weiter. Es geht um eine Steuertabelle und die Zellen sind anderwärtig belegt. Ich habe zum zählen der Tage nur zwei Zellen zur Verfügung. A22 mit dem aktuellem Datum und B23 für den Ausgabewert.

    Also so:
    26.11.2012 = 0
    27.11.2012 = 1
    28.11.2012 = 2
    29.11.2012 = 3
    usw.
    Wochenenden und Feiertage spielen keine Rolle, es sollte einfach nur Zählen.

    Die Ausgabewerte 0,1,2,3,usw. sollen selbstständig täglich mittels VBA in der Zelle B23 erscheinen.

    Du must wissen, die Zelle B23 steht für einen Handelswert. Die Steuertabelle aber umfaßt gegenwertig 128 Handelswerte Tendenz steigend. Ich müste also täglich 128 mal die Formel eingeben.
    Das macht keinen Sinn. Es ist nur über VBA zu lösen.


    Gruss Cutter2

    Cutter2 schrieb:

    Es ist nur über VBA zu lösen.
    Da halte ich jede Wette dagegen.
    Mit einer eleganten Excel-Formel lässt sich das garantiert wesentlich eleganter lösen.
    Schau dir mal die Funktionen ZählenWenn oder Anzahl an ;)

    Aber wenn du's mit VBA lösen willst, dann nimm halt so einen ähnlichen Ansatz:

    Visual Basic-Quellcode

    1. n=0
    2. For Each Cell in Range("A22:A" & Cells(Rows.Count,1).End(xlUp).Row)
    3. If Not IsEmpty(Cell) Then If IsDate(Cell.Value) Then n=n+1
    4. Next
    5. Range("B23").Value = n
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    Hallo petaod !

    Vielen Dank für Deine Hilfe. Die ganze Sache sieht nun so aus.

    Private Sub
    Worksheet_Change(ByVal Target As Excel.Range)
    If (Target.Address = "$B$25") Or (Target.Address = "$B$27") Then
    Call AUD_CAD_TageZählen
    Cells(22, 2) = Date
    End If

    End Sub

    Sub AUD_CAD_TageZählen()
    n = -1
    For Each Cell In Range("B22:B" & Cells(Rows.Count, 1).End(xlUp).Row)
    If Not IsEmpty(Cell) Then If IsDate(Cell.Value) Then n = n + 1
    Next
    Range("B24").Value = n
    End Sub


    Du hattest n=0 doch dann fing er bei 1 an zu zählen. Bei n=-1 beginnt er bei 0. So soll es sein.
    Ich habe auch die Zelle geändert. Das Ausgangsdatum steht nicht mehr in A22 sondern jetzt in B22.
    Ich habe also A22:A geändert in B22:B. Ich hoffe diese Änderungen sind richtig. Schau du es dir doch mal an.

    Ob er nun zählt, werde ich morgen sehen. Denn dann müßte in der Zelle B24, in der jetzt 0 steht, morgen der Wert 1 stehen.


    Gruss Cutter2