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 :
en rouge la valeur que a fonction retourne
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
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
Partager