Vba comparaison entre dates

mart -  
tinmar43 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j'aimerai bien que ces quelques lignes de codes puissent me comparer les dates inscrites dans 2 cellules (A1 = date du jour) et me mettent la cellule dont la date est dépassée en rouge.

Merci pour votre aide

Private Sub CommandButton1_Click()
For i = 3 To 150
If Range("I" & i) < Range("A1") Then
Range("I" & i).Interior.ColorIndex = 3
End If
Next
End Sub

2 réponses

chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Bonjour,

je ne vois pas quel est ton problème, cela fonctionne.

Cordialement.
0
mart
 
le test fonctionne mal, toute la colonne sort rouge, que la date soit avant ou apres aujourdhui
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Pourtant je viens de retester chez moi, en mettant des dates inférieure à A1, elles sont en rouge, en mettant des dates supérieures à A1 elles restent comme avant....
0
mart
 
puis-je vous envoyer mon fichier par mail?
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Non, par souci d'équité et de partage des informations, vous ne pouvez pas me l'envoyer par mail, au cas où quelqu'un d'autre viendrait vous aider ou aurait besoin de la solution apportée.

Vous pouvez déposer votre fichier via le site cijoint, puis coller le lien qui vous sera donné dans une réponse à cette conversation.
0
tinmar43 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
 
https://www.luanagames.com/index.fr.html

a j'ai trouvé un autre site, ca devrait marcher pareil
0
chossette9 Messages postés 4239 Date d'inscription   Statut Contributeur Dernière intervention   1 311
 
Voici une nouvelle version de votre macro :

Private Sub CommandButton1_Click()
Dim NbLigne As Integer
NbLigne = Range("I65536").End(xlUp).Row
For i = 3 To NbLigne
If Not (IsEmpty(Range("I" & i))) And Range("I" & i) < Range("A1") Then
Range("I" & i).Interior.ColorIndex = 3
End If
Next
End Sub


J'ai rajouter la variable NbLigne qui permet de déterminer la dernière ligne contenant des données dans la colonne I.

J'ai également ajouté un test sur les cellules vides, ce qui fait que quand une cellule de la colonne I est vide elle ne devient pas rouge.

Merci de me dire si cela vous convient.
0