Différencier Date et Texte dans une cellule

Bonjour, ou re-bonjour,

Je cherche à comparer une colonne contenant des dates avec la date du jour. Mais dans une des cellules de cette colonne, il n'y a non pas une date mais du texte. Je voudrais donc ne pas tester cette cellule, pour ne pas avoir de "bug" dans mon code.

J'ai essayé cette approche mais cela ne fonctionne pas.

Private Sub Workbook_Open()
Dim i As Integer
Dim Nom As String
Dim Prenom As String

For i = 5 To 300
    If Cells(i, 8) <> "" And NumberFormat.Cells(i, 8) = m / d / yyyy And Int(CDate(Cells(i, 8))) < DateSerial(Year(Date), Month(Date) + 2, Day(Date)) Then
        Nom = Cells(i, 1)
        Prenom = Cells(i, 2)
        MsgBox (Nom)

        End If
Next
End Sub
7test-2.xlsm (15.29 Ko)

Si quelqu'un a une idée de comment on pourrait faire. Je pense que ça doit encore être un truc basique mais ...

Merci d'avance

Bonjour David, bonjour le forum,

Peut-être comme ça :

Private Sub Workbook_Open()
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim Nom As String 'déclare la variable Nom
Dim Prenom As String 'déclare la variable Prenom

TV = Range("H1:H300") 'définit le tableau des valeurs TV
For I = 5 To 300 'boucle des lignes 5 à 300
    If TV(I, 1) <> "" Then 'condition : si la donnée ligne I, colonne 1 de TV n'est pas vide
        On Error GoTo suite 'gestion des erreurs, en cas d'erreur va à l'étiquette "suite"
        'condition 2 : si la donnée ligne I, colonne 1 de TV (convertie en entier long) est égale à la date du jour (convertie en entier long)
        If CLng(TV(I, 1)) = CLng(Date) Then
            Nom = Cells(I, 1) 'récupere le nom dasns la cellujle ligne I colonne 1
            Prenom = Cells(I, 2) 'récupere le prénom dasns la cellujle ligne I colonne 2
            MsgBox (Nom) 'message
        End If 'fin de la condition 2
    End If 'fin de la condition 1
suite: 'étiquette
Next I 'prochaine ligne de la boucle
End Sub

Bonjour,

Une autre proposition

Private Sub Workbook_Open()
Dim Cel As Range
Dim Nom As String, Prenom As String
    For Each Cel In Range("H5:H" & Range("A" & Rows.Count).End(xlUp).Row)
        If IsDate(Cel) And Cel.Value < DateSerial(Year(Date), Month(Date) + 2, Day(Date)) Then
            Nom = Cells(Cel.Row, 1)
            Prenom = Cells(Cel.Row, 2)
            MsgBox (Nom & " " & Prenom)
        End If
    Next
End Sub

A+

Rechercher des sujets similaires à "differencier date texte"