filtrer en fonction des dates entrées dans une textbox

  • Initiateur de la discussion Initiateur de la discussion ana12
  • 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 !

ana12

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide pour l'utilisation des TextBox.
En effet je souhaite supprimer des lignes dans une base de donnée en fonction de leur date.
Pour cela on demande à l'utilisateur d'entrer une date de début et une date de fin (par l'intermediaire d'une textbox) puis on supprime les lignes dont les dates sont comprises entre la date de début et la date de fin.
J'ai compris comment supprimer des lignes lorsqu'elles contiennent la valeur de la textbox (un mot ou un numéro) mais cela ne marche pas lorsque je rentre une date.

Pour l'instant j'en suis la:

Private Sub CommandButton1_Click()

Dim rng As Range
Dim tx As String
If TextBox1 = "" Then Exit Sub
tx = TextBox1.Value
TextBox1.Value = Format(TextBox1.Value, "dd/mm/yyyy")
Do
Set rng = Sheets("DTE1").Range("A:AS").Find(tx)
If rng Is Nothing Then
Exit Do
Else
Sheets("DTE1").Rows(rng.Row).Delete
End If
Loop
Unload Me
End Sub

Je vous remercie d'avance pour votre aide.
 
Re : filtrer en fonction des dates entrées dans une textbox

Bonjour à tous


Un petit exemple avec l'emploi du filtre automatique
Pré-requis pour tester:
Insérer Un Userform (avec dexu TextBox (nommés TextBox1 et TextBox2) et un CommandButton1 dans un classeur vierge.
et coller dans le VBA de l'userform les codes suivants:
Code VBA:
Private Sub CommandButton1_Click()
Dim DD&, DF&
DD = CLng(DateValue(TextBox1) * 1): DF = CLng(DateValue(TextBox2) * 1)
[A1:A47].AutoFilter Field:=1, Criteria1:=">" & DD, Operator:=xlAnd, Criteria2:=">" & DF
End Sub




Code VBA:
Private Sub UserForm_Initialize()
'ici ce code ne sert qu'à crééer les données pour tester
Range("A1") = "TEST"
Range("A2") = "1/1/2013"
Range("A2").DataSeries Rowcol:=xlColumns, Type:=xlChronological, Date:=xlDay, Step:=1, Stop:=41320, Trend:=False
TextBox1 = "01/01/2013"
TextBox2 = "31/01/2013"
' A NE PAS UTILISER DANS LE CLASSEUR ORIGINAL
End Sub





PS: En cas d'utilisation in situ, il faudra adapter notamment la plage de cellules où appliquer le filtre
 
Re : filtrer en fonction des dates entrées dans une textbox

Re bonjour

j'ai adapté la solution de Staple1600 à mon fichier cela marche tres bien!

j'essaie à présent d'adapter cette méthode sans textbox, c'est à dire que les dates de début et de fin ne soient plus entré à la main dans les textbox mais qu'elles correspondent à la date mini et la date maxi d'une colonne d'un fichier.

Malheureusment je n'y arrive pas.

Je vous remercie d'avance pour votre aide
 
Re : filtrer en fonction des dates entrées dans une textbox

Merci!
c'est bon mon code marche sans text box en allant chercher les données min et max d'une autre colonne!
pour ceux qui aurait le meme probleme voici mon code:

Sub supprimer()

Sheets("12Février").Activate

Dim MyRange As Range, Reponse As String
With Sheets("12Février")
Set MyRange = Sheets("12Février").Range("L2:L" & .Range("L65536").End(xlUp).Row)
Reponse1 = CDate(Application.WorksheetFunction.Max(MyRange))
Reponse2 = CDate(Application.WorksheetFunction.Min(MyRange))
MsgBox "la valeur max est " & Reponse1 & " et la valeur min est " & Reponse2
End With

Sheets("8Février").Activate
Dim k
For k = [A65536].End(xlUp).Row To 2 Step -1 'du bas en haut
If Cells(k, 12) >= CDate(Application.WorksheetFunction.Min(MyRange)) And Cells(k, 12) <= CDate(Application.WorksheetFunction.Max(MyRange)) Then Rows(k).Delete
Next

End Sub

bonne journée!
 
- 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
201
Réponses
10
Affichages
281
Réponses
2
Affichages
153
Retour