• Initiateur de la discussion Initiateur de la discussion sircroco
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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.
 
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+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
592
Réponses
3
Affichages
371
  • Question Question
Microsoft 365 Règle de 3
Réponses
11
Affichages
822
  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
515
Retour