clem74170
Messages postés8Date d'inscriptionmercredi 14 octobre 2009StatutMembreDernière intervention 5 novembre 2009
-
5 nov. 2009 à 09:41
clem74170
Messages postés8Date d'inscriptionmercredi 14 octobre 2009StatutMembreDernière intervention 5 novembre 2009
-
5 nov. 2009 à 17:09
Bonjour,
Je travail sur VBA et j'aurais besoin de créer un langage If then.
La problématique est la suivante :
Dans une colonne x, j'ai des dates triées en mode décroissant et dans une cellules R1C1 une date y.
Je souhaite faire une boucle annalisant ces dates et supprimant toutes les dates suppérieures à la date y + 4 mois.
La boucle fonctionne bien mais le problème se situe au niveau du If ; Celui ci ne reconnait pas les dates supérieures de + de 4 mois par rapport à la date en R1C1.
J'ai essayé différente façon de l'écrire mais sans résultats.
Une des tentatives est la suivante :
If ActiveCell > date(year(R2C10),month(R2C10),day(R2C10)) Then
j'espère que vous allez pouvoir éclairer ma lanterne parce que là je bloque vraiment et je n'arrive pas à voir pourquoi.
PS : J'ai bien mis la colonne x et la date R1C1 en format date
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 nov. 2009 à 11:43
Salut
Ah ces dates, toujours ce problème de compréhension.
Les dates sous Excel sont représentées par un simple chiffre (Long) et c'est l'AFFICHAGE qui prend un format particulier.
Puisqu'il peut y avoir des problèmes de compatibilité entre les dates au format US, français ou japonnais, mieux vaut ne travailler que sur la valeur numérique, surtout quand il s'agit de faire une comparaison.
Exemple :
Dim maCell As Object
For Each maCell In Range("A4:A8")
If CLng(maCell) > CLng(Date) Then
maCell.Offset(0, 1) = "Oui"
Else
maCell.Offset(0, 1) = " "
End If
Next
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)