Bonjour

Mon problème : J'ai une fonction qui renvoie une date. La valeur de la cellule est un entier, je suis obligé de changer le format de la cellule manuellement(clique droit, format de la cellule, date), j'aimerai faire ça par programmation?

voici le code de ma fonction :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Public Function CDateDebEx(Optional Exercice As Integer = 0) As Variant
    Application.ScreenUpdating = False
    Dim DateDeb As Variant
    Dim ChaineDate As String
    Dim Liste As String
        
    Dim DateDossierDeb As ADODB.Recordset
    Set DateDossierDeb = New ADODB.Recordset
    
    If Exercice < -5 Or Exercice > 0 Then
        Application.ScreenUpdating = True
        CDateDebEx = CVErr(xlErrValue)
        Exit Function
    End If
    
    ChaineDate = "DDATEDEBN"
    Select Case Exercice
            Case -5
                ChaineDate = ChaineDate + "5"
            
            Case -4
                ChaineDate = ChaineDate + "4"
                
            Case -3
                ChaineDate = ChaineDate + "3"
                
            Case -2
                ChaineDate = ChaineDate + "2"
                
            Case -1
                ChaineDate = ChaineDate + "1" 'CDate(DateDossierDeb("DDATEDEBN1"))
                
            Case 0
                ChaineDate = ChaineDate
    End Select
    
    Liste = "SELECT " & ChaineDate & " FROM Dossier "
    DateDossierDeb.Open Liste, ConnCACAO, adOpenStatic, adLockReadOnly

    If DateDossierDeb.EOF = True Then
        CDateDebEx = CVErr(xlErrValue)
    Else
        DateDeb = DateDossierDeb(ChaineDate)
        If IsNull(DateDeb) Then
            CDateDebEx = ""
        Else
            CDateDebEx = DateDeb
        End If
    End If

    Si le format de ma cellule est un standart ou un nombre ou un texte alors
       le format de ma cellule est une date
    fin

    DateDossierDeb.Close
    Set DateDossierDeb = Nothing
    Application.ScreenUpdating = True
End Function
en rouge la valeur que a fonction retourne
exemple fx=CDateDebEx()
CDateDebEx=01/01/2008 et la valeur afficher de ma cellule est égale a 39448

en bleu ce que je vroudrai faire. D'une est ce que cela est possible, si comment?

cordialement law56100