Différencier Date et Texte dans une cellule
d
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
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
f
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+