Calcul de dates

Bonjour

J’ai un fichier, résultant d’une macro, dans lequel se trouve des dates de saisies, jamais les mêmes, et je voudrai conserver que celles égales ou inférieurs a la date du jour.

Je suppose qu’il faut utiliser le ( =maintenant ) , faut il convertir les cellules dates ?

Merci d’avance

Bonjour

je voudrai conserver que celles égales ou inférieurs a la date du jour.

Je suppose qu’il faut utiliser le ( =maintenant ) , faut il convertir les cellules dates ?

Pour la date du jour, ce serait plustôt =AUJOURDHUI()

Pour répondre à ta question de conversion, tout dépend du format de tes dates, nombre ou texte? Si ce sont des dates au format nombre, je ne pense pas, par contre au format texte, c'est obligatoire.

Il te reste la possibilité de mettre un exemple sur un fichier.

Cordialement

Re bonjour

Voila en pièce jointe un exemple ; je veux donc travailler sur la colonne C (date de fin) de manière a ne garder que ce qui correspond au 3 mois qui précède la date du jour.

Nb : le contenu de la colonne C varie régulièrement.

Merci pour votre aide

25classeur1.xls (14.00 Ko)

Bonjour

Les experts VBA feront surement mieux, en attendant..

Cordialement

22classeur3.zip (7.97 Ko)

Bonjour

Bonjour Amadéus

Une variante à ton code avec ton fichier

Sub supprimeLigne()
Dim J As Long

  For J = Range("C65536").End(xlUp).Row To 2 Step -1
    If Range("C" & J) < Date - 90 Then
        Rows(J).Delete
    End If
  Next J
End Sub

Bonne journée

Merci pour ces réponses mais j'ai oubliés de signaler que je suis sous Win95.

Désolé

Cordialement

Bonjour

Les macros fonctionnent avec Excel 2002. Quel est ton problème?

A l'ouverture du fichier, tu dois avoir un message concernant les macros, tu dois les accepter pour qu'elles fonctionnent.

Sinon, dis nous ce qui ne va pas.

Cordialement

Bonjour

Il s'agit donc de macros écrites en excel95 et non en vba.

Bonne journée

Bonjour

Avec Excel 95 les Macros sont passées de XL4 à VBA.

Si tu préféres en XL4..

Supprimer_Lignes
=ECRAN(FAUX)
=SEL.CLASSEUR("Feuil1")
=SELECTIONNER("L1C1")
=POSER.NOM("Départ";CELLULE.ACTIVE())
=MODIFIER.SELECTION(4)
=POSER.NOM("Fin";CELLULE.ACTIVE())
=SELECTIONNER(Départ:Fin)
=SELECTIONNER(DECALER(SELECTION();0;2))
=LIGNES(SELECTION())
=POUR("Compteur1";1;DEREF(A10);1)
=SI(CELLULE.ACTIVE()<AUJOURDHUI()-90;EDITION.SUPPRIMER(3);SELECTIONNER(DECALER(CELLULE.ACTIVE();1;0)))
=SUIVANT()
=RETOUR()

Fichier avec Feuille Macro XL4

Cordialement

33classeur3.zip (6.56 Ko)

Bonsoir

Merci pour ces informations que je vais essayer de mettre en pratique, mais n'étant pas un expert en macro je risque de mettre un peu de temps.

Encore un grand merci

Cordialement

Bonjour

J'avance mais je piétine sur cette commande:

=SI(CELLULE.ACTIVE()<AUJOURDHUI()-90;EDITION.SUPPRIMER(3);SELECTIONNER(DECALER(CELLULE.ACTIVE();1;0)))

Est-ce quelqu'un peux la détailler, j'ai du mal a comprendre.

Désolé ! mais comme je l'ai dit je suis loin d’être un expert, mais grâce a vos réponses je progresse.

Une fois de plus MERCI

Bonjour

=SI(CELLULE.ACTIVE()<AUJOURDHUI()-90;EDITION.SUPPRIMER(3);SELECTIONNER(DECALER(CELLULE.ACTIVE();1;0)))

Est-ce quelqu'un peux la détailler, j'ai du mal a comprendre.

La boucle s'effectue sur les cellules de la colonne C qui contient les dates à analyser et l'instruction est de supprimer les lignes dont la date en colonne C est ancienne de 3 mois ou plus par rapport à aujourd'hui.

Donc en clair, traduction littérale de cette ligne de commande:

Si la cellule sélectionnée est inférieure à la date d'aujourd'hui diminuée de 90 jours; supprimer la ligne; sinon sélectionner la cellule suivante en décalant la cellule précédemment sélectionnée de 1 ligne vers le bas et dans la même colonne.

L'instruction =SUIVANT() indique qu'il faut recommencer les instructions après la ligne de code contenant =POUR(...

Tu comprends mieux?

Cordialement

Bonjour

SUPER ! j'ai compris ! un grand MERCI pour ces informations qui vont m'être très utiles.

cordialement

Rechercher des sujets similaires à "calcul dates"