re,
J'ai essayé de faire en sorte de pouvoir faire une recherche sans critère mais je sais pas quel fonction appliquer:
Private Sub Worksheet_Activate()
Dim Cel As Range
Dim Produit As Object, Program As Object, Supp As Object
Set ShBase = Sheets("Base de données")
Set ShExtract = Sheets("Feuil3")
Set Produit = CreateObject("Scripting.Dictionary")
Set Program = CreateObject("Scripting.Dictionary")
Set Supp = CreateObject("Scripting.Dictionary")
With ShBase
DerLig = .Cells(Rows.Count, "A").End(xlUp).Row
For Each Cel In .Range("A2:A" & DerLig)
If Cel <> "" Then Produit(Cel.Value) = Cel.Value
If Cel.Offset(, 3) <> "" Then Program(Cel.Offset(, 3).Value) = Cel.Offset(, 3).Value
If Cel.Offset(, 5) <> "" Then Supp(Cel.Offset(, 5).Value) = Cel.Offset(, 5).Value
Next Cel
End With
Me.Range("A9:AF5000").Clear
With Me.Range("A5")
.Validation.Delete
.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(Produit.Items, ",")
.Value = ""
End With
With Me.Range("B5")
.Validation.Delete
.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(Program.Items, ",")
.Value = ""
End With
With Me.Range("C5")
.Validation.Delete
.Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(Supp.Items, ",")
.Value = ""
End With
End Sub
J'aimerais intégrer un nouveau critère en D5, c'est pour vérifier la validité d'un date.
Je m'explique, dans un de mes champs de ma BD, je doit vérifier la validité des dates qui se trouvent dans la colonne "Validity Date" de ma BD.
C'est une cellule avec filtre:
- soit on choisi "ALL", à ce moment on sort toutes les lignes, peut importe leurs date.
- soit "STILL VALID" et là, on sort toutes les lignes dont la date de validité est dépassé.
Si jamais vous avez des idées, je suis preneur.
Je glisse en exemple: