Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

if schleife





Frage

hallo zusammen, habe folgendes problem: ich bekomme in einer spalte eine unmenge an verschiedenen datumen (zum teil vor heutigem zum teil danach) zusätzlich ist jedes noch mit einem index versehen (zb 3 bedeutet 3 monate = 90 tage, 6 = 180 tage usw.) ich würde nun eine schleife benötigen die mir folgendes erlaubt: wenn ausgeworfenes datum < heutiges und index = 3, dann + 90 tage und zwar solange, bis ausgeworfenes datum > als heutiges wäre für eure hilfe sehr dankbar lg stefan

Antwort 1 von Saarbauer

Hallo,
wenn ausgeworfenes datum < heutiges und index = 3, dann + 90 tag...
ist nicht ganz eindeutig wo die 90 / 180 Tage hinzugerechnet werden. Gehe vom ausgeworfenem Datum steht und aus.

Ich nehme mal an, dass in Spalte A das Datum, in B der Index steht und in Zeile 1 Überschriften, dann könnte man in C2 eingeben

=Wenn(A2<Heute(); ausgeworfenes Datum + B2*30; )

und dann nach unten ziehen

Gruß

Helmut

Antwort 2 von piano

Hallo
Wenn ich deine Aufgabenstellung richtig verstanden habe, könnte die Schleife etwa so ausseghen:
Sub DatSchleife()
Dim ausgeworfenes_datum As Date
Dim Heute As Date
Heute = Now()
LetzteA = Range("A65536").End(xlUp).Row ´ letzte belegte Zeile von Spalte A
For i = 1 To LetzteA
    ausgeworfenes_datum = Cells(i, 1).Value
    Index = Cells(i, 2).Value
    If ausgeworfenes_datum <= (Heute - 1) Then
        datum_neu = DateAdd("m", Index, ausgeworfenes_datum)
´ oder
´       datum_neu = DateAdd("d", Index * 30, ausgeworfenes_datum)
        Cells(i, 3).Value = datum_neu
    Else
        Exit For
    End If
Next i
End Sub

(Daten in Spalte "A", Index in "B", Ergebnis in "C")

Gruß piano

Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
- probieren geht über studieren -

Antwort 3 von haserl

vielen dank einmal

hier mein problem noch einmal konkretisiert:

ich würde mit dem index gerne auf eine matrix zugreifen, die ich händisch warten würde (dh. 3 = 90, 6 = 180 usw.)

beispiel:
ausgeworfenes datum = 20.10.2005, index = 3, gefordertes datum = 20.4.2006

vielleicht kann man dies noch berücksichtigen - wäre super! vielen dank

lg
stefan

Antwort 4 von piano

Hallo
Siehe
Zitat:
datum_neu = DateAdd("m", Index, ausgeworfenes_datum)

das bedeutet: + [Index] mal Monate
bzw.
Zitat:
datum_neu = DateAdd("d", Index * 30, ausgeworfenes_datum)

das bedeutet: [Index] mal 30 Tage, dazu brauchst du keine Matrix weil 2 x 30 = 60, 3 x 30 = 90, 6 x 30 = 180, usw.
Gruss piano

Antwort 5 von piano

PS:
Zitat:
dh. 3 = 90,
und
Zitat:
ausgeworfenes datum = 20.10.2005, index = 3, gefordertes datum = 20.4.2006

20.10.2005 + 90 Tage ist nicht der 20.4.2006 !!!

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: