Problem VBA

18/12/2009 - 09:20 von Marcus Friebe | Report spam
Hallo
Ich benötige Hilfe bezüglich eines Problems in dem folgenden Makro


...
End If

If DateDiff("d", DateSerial(Year(Cells(i, 7)) + G4, _

Month(Cells(i, 7)), Day(Cells(i, 7))), Date) > -30 And _

DateDiff("d", DateSerial(Year(Cells(i, 7)) + G4, _

Month(Cells(i, 7)), Day(Cells(i, 7))), Date) <= 0 Then

MsgBox V_N_Name & Chr(13) & "Sein G26 Termin l”uft am" _

& Chr(13) & DateSerial(Year(Cells(i, 7)) + G4, _

Month(Cells(i, 7)), Day(Cells(i, 7))) & " ab! "

Cells(i, 1).Interior.ColorIndex = 34

End If
If DateDiff("d", DateSerial(Year(Cells(i, 3)) + G50, _

Month(Cells(i, 3)), Day(Cells(i, 3))), Date) >= 1 And _

DateDiff("d", DateSerial(Year(Cells(i, 7)) + G1, _

Month(Cells(i, 7)), Day(Cells(i, 7))), Date) > -30 And _

DateDiff("d", DateSerial(Year(Cells(i, 7)) + G1, _

Month(Cells(i, 7)), Day(Cells(i, 7))), Date) <= 0 Then

MsgBox V_N_Name & Chr(13) & "Sein G26 Termin l”uft am" _

& Chr(13) & DateSerial(Year(Cells(i, 7)) + G1, _

Month(Cells(i, 7)), Day(Cells(i, 7))) & " ab! "

Cells(i, 1).Interior.ColorIndex = 34

End If
.

Hier steht in der Spalte 7 (also G2, G3, G4 usw.) ein Datum an dem ein
Mitarbeiter zu seinem Termin war. Nun besteht bei mir das Problem das dieser
Termin für Mitarbeiter ab dem 50. Lebensjahr sich jàhrlich wiederholen muss,
aber unter dem 50. Lebensjahr nur alle 3 Jahre ansteht.
Wie kann ich es am besten hinbekommen, das bei der oberen "DatDiff" mir erst
etwas angezeigt wird wenn es sich um einen Mitarbeiter unter 50 Jahre
handelt.
Momentan zeigt mir Excel im ungünstigsten Fall (bei einem Namen) die
"MsgBox" doppelt an.


Mit freundlichen Grüßen
Marcus Friebe
 

Lesen sie die antworten

#1 Andreas Killer
18/12/2009 - 12:08 | Warnen spam
On 18 Dez., 09:20, Marcus Friebe wrote:

Mitarbeiter zu seinem Termin war. Nun besteht bei mir das Problem das dieser
Termin für Mitarbeiter ab dem 50. Lebensjahr sich jàhrlich wiederholen muss,
aber unter dem 50. Lebensjahr nur alle 3 Jahre ansteht.
Wie kann ich es am besten hinbekommen, das bei der oberen "DatDiff" mir erst
etwas angezeigt wird wenn es sich um einen Mitarbeiter unter 50 Jahre
handelt.


Sub Test()
Dim Geburtstag As Date, Termin As Date
Geburtstag = "14.03.1964"
Termin = Date

If Termin > DateAdd("yyyy", 50, Geburtstag) Then
'Er ist über 50
Stop
Else
'Jünger
Stop
End If
End Sub

Ähnliche fragen