Macro Filtre date

sircroco

XLDnaute Nouveau
Bonjour,

Je cherche une macro toute simple qui permet, en indiquant les dates d'ordre de débuts et dates de fin dans l'userform (Cliquer sur le bouton), de copier et coller la feuille "vente" dans la feuille "ventefiltre" en prenant en compte ce filtre.

Par exemple j'écris dans l'userform
date de début : 09/07/2018
date de fin : 10/07/2018

J'aurai donc que trois lignes dans la feuille "Ventefiltre"
Le fichier est en PJ

Je vous adresse mes meilleurs salutations.
 

Pièces jointes

  • Test.xlsm
    19.7 KB · Affichages: 30

Lone-wolf

XLDnaute Barbatruc
Bonsoir sircroco, Jacques :)

Comme je travaillais dessus... ton fichier en retour.

EDIT: avec l'exemple que tu as donné, ce n'est pas 3 lignes mais 2; à moins que tu ais 9.5/07/2018.
 

Pièces jointes

  • Test.xlsm
    23.4 KB · Affichages: 27
Dernière édition:

job75

XLDnaute Barbatruc
Bonjour sircroco, JB, Lone-wolf, le forum,

Une autre manière d'utiliser le filtre avancé :
Code:
Private Sub CommandButton1_Click()
If Not IsDate(TextBox1) Then TextBox1 = "": TextBox1.SetFocus: Exit Sub
If Not IsDate(TextBox2) Then TextBox2 = "": TextBox2.SetFocus: Exit Sub
ThisWorkbook.Names.Add "date1", CDbl(CDate(TextBox1)) 'nom défini
ThisWorkbook.Names.Add "date2", CDbl(CDate(TextBox2)) 'nom défini
With Sheets("Vente").[A1].CurrentRegion
    .Cells(2, .Columns.Count + 2) = "=AND(RC[-2]>=date1,RC[-2]<=date2)"
    .AdvancedFilter xlFilterCopy, .Cells(1, .Columns.Count + 2).Resize(2), Range(.Rows(1).Address)
    .Cells(2, .Columns.Count + 2) = ""
End With
End Sub
Bonne journée.
 

job75

XLDnaute Barbatruc
Re,

Je préfère ceci :
Code:
Private Sub CommandButton1_Click()
If Not IsDate(TextBox1) Then TextBox1 = "": TextBox1.SetFocus: Exit Sub
If Not IsDate(TextBox2) Then TextBox2 = "": TextBox2.SetFocus: Exit Sub
ThisWorkbook.Names.Add "X", "={" & CDbl(CDate(TextBox1)) & ";" & CDbl(CDate(TextBox2)) & "}" 'nom défini"
With Sheets("Vente").[A1].CurrentRegion
    .Cells(2, .Columns.Count + 2) = "=AND(RC[-2]>=MIN(X),RC[-2]<=MAX(X))"
    .AdvancedFilter xlFilterCopy, .Cells(1, .Columns.Count + 2).Resize(2), Range(.Rows(1).Address)
    .Cells(2, .Columns.Count + 2) = ""
End With
End Sub
Les dates peuvent être interverties sans inconvénient.

A+
 

Discussions similaires

Réponses
11
Affichages
515

Statistiques des forums

Discussions
312 276
Messages
2 086 711
Membres
103 377
dernier inscrit
fredy45