Comparaison de date

Bonjour,

Etant débutant sur VBA je fais appel à votre aide.

On m'a confié comme mision de comparer une date avec plusieurs dates, la date novembre 2001 doit être >= à toutes les autres dates si c'est le cas alors cela doit m'afficher "à jour" sinon si une des autres dates est > au novembre 2001 cela doit m'afficher " pas à jour".

le problème c'est que ce code me fait la comparaison que pour la valeur du haut celle de "novembre 2000" et ne prend pas en compte les autres valeurs or je voudrais que cela m'affiche "pas à jour" car il y a une date qui est > au novembre 2001. je voudrais faire la comparasion de toutes les dates et pas que de la première et si il y'a des cellules vide alors qu'il ne les prennes pas en compte.

Je voulais savoir quel solution vous pourrez me donner.

Merci à ceux qui auront pris le temps de lire.

image

Sub IF_test() '

'déclaration de variable

 Dim i As Integer, j As Date, Jour As Date

'valeurs des vairables

 j = Cells(i + 2, 6).Value

 Jour = Cells(10, 6).Value

'Mise en place de la boucle

 For i = 2 To 10

 If Jour >= j Then Cells(11, 6).Value = "à Jour"

 ElseIf Jour < j Then Cells(11, 6).Value = "Pas a Jour"

 End If

 Next

 End Sub

Bonjour,

Le problème est que votre test écrase le précédent.

Si vous trouvez une seul date > que novembre 2001 il faut sortir de votre boucle sinon le test suivant indique de nouveau "à jour"

'La varialbe J je vois pas l'intérêt. la date qui sert de comparaison c'est votre variable jour (terme qu'il vaut mieux éviter 'd'utiliser pour ne pas s'embrouiller.) 

Sub IF_test() '

'déclaration de variable

Dim Madate As Date
Madate = Cells(10, 6).Value

'Mise en place de la boucle
'de 2 à 9 car en ligne F10 c'est votre date nov-01 qui sert pour le test

For i = 2 To 9
If Madate>=Cells(i, 6).Value Then Cells(11, 6).Value = "à Jour"
Else Cells(11, 6).Value = "Pas a Jour"
Exit sub
 End If

 Next i

 End Sub

Merci pour votre aide.

Mais je comprend pas trop la manipulation à faire.

Il vous faut une cellule qui sert de date de référence pour votre date.

Dans votre code vous indiquez jour=Cells(10, 6).Value = nov-01 je suppose donc que c'est cette date qui sert de référence ?

sinon il faut mettre la date de référence ailleurs et pas dans la même colonne.

c'est cette cellule qui servira pour la comparaison.

Dans mon code je l'appel madate=Cells(10, 6).Value.

Sur votre image vous interrogez les dates se trouvant en colonne F ( colonne 6 ) à partir de la ligne 2 car en ligne 1 c'est un titre.

Votre boucle doit donc interroger cells(2, 6) ; cells(3, 6) ; cells(4,6) ... et ainsi de suite jusqu'à 9 puisque la dernière ligne saisie est la 9.

On utilise de la valeur de i variable de 2 à 9 pour interroger si cellule >= madate.

joignez un fichier exemple qui correspond à votre besoin si vous ne trouvez pas.

Oui c'est cette date qui sert de référence.
Mais dans votre code je dois déclarer I en valeurs entière non?

Vous avez pas déclarer I?

Et pour le else il me faut un elseif non? parce que je peux pas lancer votre code.

image

Merci pour votre temps et aide :)

Vous pouvez essayer avec elseif à la place de else mais

dans un premier temps retirez les " : " derrière Else

Les " : " devant le else sont mis automatiquement.

je peux pas les enlever.

et l'erreur qui m'affiche c'est " Else sans If" alors que dans votre code vous avez mit un If et un End If.

Ce serait plus facile avec votre fichier sans les infos importantes.

j'ai trouvé le problème.
Le problème est qu'il fallait sauté de ligne après le "Then" .

image

Juste un autre petit problème.

Si je voudrais faire ceci sur plusieurs colonnes je devrai faire une incrémenation de colonnes?

Rechercher des sujets similaires à "comparaison date"