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...
bonjour

et pourquoi pas simplement
VB:
Function FormatCellIsDate(Cell As Range) As Boolean

        FormatCellIsDate = isdate(cell)

End Function

ce qui n'apporte rien de plus à la fonction excel "estdate"
quels sont les cas que tu comptes traiter avec ta fonction?
 
Bonjour Dudu2, Cousinhub, Vgendron,
A vérifier mais sur mon vieux XL2007 VBA6.3, 06/07/2025 répond VRAI, mais dimanche 6 juillet 2025 répond FAUX.
1751809460168.png

( j'ai vérifié, les deux cellules contiennent bien la même valeur )
Addon :
En approfondissant :
1751810501904.png


Mais en reprenant la fonction de Vgendron, c'est mieux :
1751810653760.png
 
Dernière édition:
Mais en reprenant la fonction de Vgendron, c'est mieux :
c'est bien trop d'honneur que tu me fais la.. il s'agit juste d'une fonction Excel..
vu que dans ton tableau, "estdate" renvoie vrai à chaque fois , je présume que la colonne testée, c'est toujours la même valeur, mais avec un format d'affichage différent
et donc @Dudu2 , ca teste bien le format, pas la valeur
 
IsDate() teste si la valeur est une date. Ça ne présume en rien du format.
Mets "Toto et Titi" dans une cellule que tu mets en format date, IsDate() = False. Et heureusement parce que j'aurais quelques kilos de code à revoir !
bah oui, on est d'accord...
mais je ne comprend toujours pas ce que tu veux tester...
ta fonction retourne Vrai ou False.. ca ne te dit pas quel format est appliqué...
 
Bonjour,
Isdate renvoie true pour tous numérique.

Pour le dimanche 6 juillet 2025 ça ne peut fonctionner qu'avec un dates et numberforma car sinon c'est du texte et non une date.

Lance toi dans une usine à gaz VBA pour identifier tout ce qui ressemble de près ou de loin à une date.
 
mais je ne comprend toujours pas ce que tu veux tester...
Je ne veux pas tester si la valeur de la cellule est une date, ce que teste IsDate() quelque soit d'ailleurs le format de la cellule.
Je veux savoir si le format de la cellule est un format de type date. Ça me parait clair.
Le titre du sujet: VBA - Est-ce que le format d'une cellule est un format de type Date (quelconque)

ta fonction retourne Vrai ou False.. ca ne te dit pas quel format est appliqué...
Ma fonction est sensée retourner Vrai si le format de la cellule est un format Date.
Malheureusement, il y a des lacunes.
 
Dernière édition:
Pourquoi ?
Parce que dans des fichiers de Compta j'ai des colonnes qui parfois contiennent des cellules du type de la cellule A2 du fichier joint.
Dès qu'on y accède ce sont des erreurs #6 - Dépassement de capacité parce que la cellule a un format Date et que le nombre qu'elle contient ne peut pas être converti en date => erreur #6.

Je me propose donc de les corriger en m'assurant que la cellule en question est bien en format date (pour les passer en format Standard).
D'où le sujet.
 

Pièces jointes

- 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
90
Retour