web-dev-qa-db-fra.com

Fonction Now () avec temporisation

Donc, la fonction =Now().... est-il possible de l'utiliser et d'obtenir uniquement la date, pas l'heure?

ou y a-t-il juste une fonction pour cette idée?

23
Justin

Il y a fonction Date .

25
tlayton

Les dates dans VBA ne sont que des nombres à virgule flottante, où la partie entière représente la date et la partie fraction représente l'heure. Ainsi, en plus d'utiliser la fonction Date comme le dit tlayton (pour obtenir la date actuelle), vous pouvez également convertir une valeur de date en un entier pour obtenir la partie date à partir d'une date arbitraire : Int(myDateValue).

10
Dean Harding
DateValue(CStr(Now()))

C'est le meilleur que j'ai trouvé. Si vous avez déjà la date sous forme de chaîne, vous pouvez simplement faire:

DateValue("12/04/2012 04:56:15")

ou

DateValue(*DateStringHere*)

J'espère que cela aide quelqu'un ...

9
Nick

Je préfère créer une fonction qui ne fonctionne pas avec des chaînes:

'---------------------------------------------------------------------------------------
' Procedure : RemoveTimeFromDate
' Author    : berend.nieuwhof
' Date      : 15-8-2013
' Purpose   : removes the time part of a String and returns the date as a date
'---------------------------------------------------------------------------------------
'
Public Function RemoveTimeFromDate(DateTime As Date) As Date


    Dim dblNumber As Double

    RemoveTimeFromDate = CDate(Floor(CDbl(DateTime)))

End Function

Private Function Floor(ByVal x As Double, Optional ByVal Factor As Double = 1) As Double
    Floor = Int(x / Factor) * Factor
End Function
4
Berend Nieuwhof

Vous pouvez également utiliser le format $ (Now (), "Short Date") ou le format de date de votre choix. Sachez que cette fonction renverra la date sous forme de chaîne, donc utiliser Date () est une meilleure approche.

3
Rob Gray

Collez cette fonction dans votre module et utilisez-la comme une formule similaire

Public Function format_date(t As String)
    format_date = Format(t, "YYYY-MM-DD")
End Function

par exemple, dans la cellule A1, appliquez cette formule

=format_date(now())

il reviendra au format AAAA-MM-JJ. Modifiez n'importe quel format (date année mois) selon vos souhaits.

0