Bonjour a tous,
J’ai ecrit cette petite function qui soustrait/ajoute un certain nombre de jours(n) d’une date de depart(dtStart). Si le result tombe sur un weekend alors , la function retourne le vendredi d’avant.
Je veux m’assurer que la cellule qui accueille la function soit de type date("m/d/yyyy") pour eviter de le faire manuellement. Pour ce faire, j’utilise Application.Caller mais visiblement cela ne marche pas !!!
Pouvez vous svp me dire la cause de ma bêtise?
Merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Function fctTMinus(dtStart As Date, n As Byte) As Date
'function qui soustrait/ajoute un certain nombre de jours(n) d'une date de depart(dtStart). _
Si le result tombe sur un weekend alors , la function retourne le vendredi d'avant.
 
    Dim dtTemp As Date
 
    dtTemp = DateAdd("d", -n, dtStart)
 
    'Renvoyer le vendredi d'avant si le result de l'operation donne un weekend.
    Select Case Weekday(dtTemp, vbMonday)
        Case 6
            'Renvoyer le vendredi d'avant si le result tombe sur samedi
            dtTemp = DateAdd("d", -1, dtTemp)
        Case 7
             'Renvoyer le vendredi d'avant si le result tombe sur Dimanche.
             dtTemp = DateAdd("d", -2, dtTemp)
    End Select
 
    'Le resultat final
    fctTMinus = dtTemp
 
    'S'assurer la cellule qui acceuille le result soit du format date ie "m/d/yyyy".
    'CECI NE SEMBLE PAS MARCHER COMME ESCOMPTE !!!!
     If IsObject(Application.Caller) Then
        Application.Caller.NumberFormat = "m/d/yyyy"
    Else
    End If
 
End Function