XL 2021 VBA - Est-ce que le format d'une cellule est un format de type Date (quelconque)

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dudu2

XLDnaute Barbatruc
Bonjour,

Est-ce que cette fonction répond de manière sûre à la question ?
VB:
Function FormatCellIsDate(Cell As Range) As Boolean
    If IsDate(Format(0, Cell.NumberFormat)) Then
        'Return Value
        FormatCellIsDate = True
    End If
End Function
 
Solution
Voilà le code ChatGPT de @sylvanu corrigé des quotes et backslashes. Suis pas mécontent de lui en mettre une petite à ChatGPT 😎
VB:
'---------------------------------------------------
'Returns True if the Cell format is of any Date type
'---------------------------------------------------
Function IsDateFormat(Cell As Range) As Boolean
    Dim CellNumberFormat As String
    Dim CellCleanNumberFormat As String
    Dim OnQuote As Boolean
    Dim iQuote As Integer
    Dim iBackSlash As Integer
    Dim i As Integer
 
    CellNumberFormat = LCase(Cell.NumberFormat)
 
    i = 1
    iQuote = 0
    iBackSlash = -1
 
    For i = 1 To Len(CellNumberFormat)
        'Quote
        If Mid(CellNumberFormat, i, 1) = """" Then...
c'est par le format qu'Excel reconnait une date. Sinon c'est un nombre.
Ok, alors c'est moi qui le dit. Car il ne s'agit pas seulement de VBA mais de la présentation en cellule.

@patricktoulon,
Le titre actuel du sujet est absolument correct. Je ne sais pas pourquoi tu reviens toujours sur la valeur.
La solution du Post #30 (issue de ChatGPT / @sylvanu et de mes modifs) adresse parfaitement la question posée.
 
Les fonctions IsDate et IsNumeric sont faites pour être utilisées avec un String. Elles indiquent s'il peut être converti respectivement en Date ou en Double.
Le fonctions IsDate et IsNumeric sont faites pour être utilisées avec tous types de données. Elles indiquent s'ils sont ou peuvent être convertis en Date ou en tout type numérique selon leur valeur.

Edit: pour être plus précis... IsDate(expression)
L’argument expression requise est un Variant contenant une expression de date ou une expression de chaîne reconnaissable en tant que date ou heure.

D'ailleurs la doc MS ne fait pas référence aux Variant qui NE sont PAS reconnaissables en tant que date ou heure et pourtant potentiels arguments.
 
Dernière édition:
Je ne sais pas pourquoi tu reviens toujours sur la valeur.
Ou plutôt si car je crois que c'est le Post #35 et ma réflexion sur la "proposition" qui n'a pas été comprise.
J'aurais dû me taire et ne pas relancer un sujet déjà résolu.
1751915091503.gif
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
250
Retour