Conversion au format Date
Bonjour,
Savez-vous comment je peux convertir au format Date le résultat de la fonction suivante :
Code:
1 2 3 4
|
Function Date_echeance(Range1 As Range, Range2 As Range)
Date_echeance = "30/Range1/Range2"
End Function |
Ou Range1 donnera le numéro du mois (1, 2, 3, ...) et Range2 l'année (2013, 2014, ...)
Merci !
conversion au format date
bonsoir,
cela semble fonctionner, que les cellules A1 et A2 soient au format texte ou number.
Par contre, il faut que la cellule A3 dans laquelle est renvoyée le résultat soit au format "standard" pour que la conversion se fasse.
La même exigence se pose au demeurant lorsque l'on écrit une date directement dans la feuille. Si la cellule est initialement au format texte, elle le reste alors qu'elle se convertie si elle est standard.
Code:
1 2 3 4 5 6 7 8 9 10 11
|
Sub data1()
Date_echeance Range("a1"), Range("a2")
End Sub
Function Date_echeance(range1 As Range, range2 As Range)
Date_echeance = CDate("30" & "/" & range1 & "/" & range2)
Cells(3, 1) = Date_echeance
End Function
Cordialement, |
conversion au format date
Bonjour Hervé et autres membres,
Il n'y en effet aucun problème s'il ne s'agit que de renvoyer un message.
Par contre, si le résultat doit être renvoyé dans une cellule, comme c'est probablement le cas, il risque d'y avoir des surprises si des opérations sont effectuées sur les dates (différence entre deux date par exemple).
C'est pourquoi, ne sachant pas à priori le format de la cellule ou le résultat est renvoyé, je prévois par sécurité.
Code:
1 2
|
Cellule.NumberFormat = "General" ' format standard |
cordialement,
conversion au format date
bonjour Alain,
merci pour ces informations sur l'emploi des fonctions.
Voici donc comment j'ai modifié ma proposition pour tenir compte de tes remarques.
Code:
1 2 3 4 5 6 7 8 9
|
Sub data1()
Cells(3, 1).NumberFormat = "General" ' format standard
Cells(3, 1) = Date_echeance(Range("a1"), Range("a2"))
End Sub
Function Date_echeance(Range1 As Range, Range2 As Range) As Date
Date_echeance = CDate("30" & "/" & Range1 & "/" & Range2)
End Function |
En fait, le but de ma proposition initiale était de souligner le problème posait par une cellule résultat initialement au format texte (éventualité toujours possible) et qui le reste avec la proposition de Teze.
Cordialement,