Macro qui supprime les lignes pour les dates que l'on ne souhaite pas

bob4112

XLDnaute Nouveau
Bonjour,
J’ai un fichier Excel avec des données qui contiennent des dates. Je veux une macro qui me supprime les lignes dont les données ne sont pas entre 2 dates.
exemple:
j'aimerais inserer chacunes de ces dates
02/02/2013
31/03/2013
dans une cellules dans l'onget "feuil 1" et dans l'onglet "feuil 2" ma base de donnée puis en cliquand sur la macro, il ne me restera que les lignes entre ces deux dates
Pour une meilleure compréhension je vous mets mon fichier Excel en pièce jointe.

Cordialement
 

Pièces jointes

  • test1.xls
    70.5 KB · Affichages: 59
  • test1.xls
    70.5 KB · Affichages: 56
  • test1.xls
    70.5 KB · Affichages: 63
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Macro qui supprime les lignes pour les dates que l'on ne souhaite pas

Bonjour à tous

bob4112
Voici une façon de faire (test OK sur ta pièce jointe)
Code:
Sub a() 'test OK
Dim dd&, df&
With Sheets("Feuil1")
    dd = CLng(.Range("E2").Value)
    df = CLng(.Range("E3").Value)
End With
Sheets("Infos du jour").Range("A1").AutoFilter _
    Field:=1, _
    Criteria1:=">=" & dd, Operator:=xlAnd, _
    Criteria2:="<=" & df
End Sub
 

DoubleZero

XLDnaute Barbatruc
Re : Macro qui supprime les lignes pour les dates que l'on ne souhaite pas

Bonjour, bob4112, Staple1600 :D, le Forum,

Peut-être, également, ainsi :

Code:
Option Explicit
Sub Ligne_supprimer_selon_date()
    Dim i As Long
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        If Cells(i, "A") < Sheets("Feuil1").Range("e2") Or Cells(i, "A") > Sheets("Feuil1").Range("e3") Then Rows(i).Delete
    Next
End Sub

A bientôt :)
 

Staple1600

XLDnaute Barbatruc
Re : Macro qui supprime les lignes pour les dates que l'on ne souhaite pas

Bonjour 00 ;)

Histoire d'éviter de devoir pleurer les données perdues dans les limbes "exceliennes";)
Sortons plutôt les masques;)
Qu'en penses-tu, 00 ?

Code:
Sub Ligne_Masquer_selon_date()
    Dim i As Long
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        If Cells(i, "A") < Sheets("Feuil1").Range("e2") Or Cells(i, "A") > Sheets("Feuil1").Range("e3") Then Rows(i).Hidden = True
    Next
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Macro qui supprime les lignes pour les dates que l'on ne souhaite pas

Re


Juste pour le fun et pour les "ifophobes" ;)
Code:
Sub MasquerETDemasqueLignes_selon_dateII()
Dim ws As Worksheet: Set ws = Sheets("Feuil1")
Dim i As Long
Application.ScreenUpdating = False
For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
    Rows(i).Hidden = _
    (Cells(i, "A") < ws.[e2] Or Cells(i, "A") > ws.[e3]) = _
    Not Rows(i).Hidden
Next
End Sub

NB: Quand on lance la macro une 1ere fois, les lignes sont masquées
quand on la relance une seconde fois, on revient à l'état initial
(Cela peut ne pas être inintéressant ;) )
 

Staple1600

XLDnaute Barbatruc
Re : Macro qui supprime les lignes pour les dates que l'on ne souhaite pas

Re

00:
Je viens de retester
En étant sur la feuille Infos du jour, je lance la macro, j'obtiens cela:
masquesz.png
 

Discussions similaires