Filtrage avancé
Bonjour le forum,
Je rencontre actuellement un soucis avec une macro de filtrage avancé.
Le filtrage n'est prit en compte que si je renseigne une date, or, je souhaiterais que même si je n'ai pas sélectionné de date qu'il m'affiche le résultat du critère en question (ex: colonne referentiel = référence_1, colonne date = vide, techno = vide ou techno_1).
Avez-vous une idée?
Voici le fichier Excel.
Code via l'enregistreur de macro
Sub FiltreData()
'Le Tableau14[#All] est le tableau des critères dans l'onglet Tools
'aucune modification n'est nécessaire si vous augmentez le nombre de ligne ou le nombre de colonne
Worksheets("Source").Range("Tableau_source[#All]").AdvancedFilter Action:= _
xlFilterCopy, CriteriaRange:=Worksheets("Tools").Range("Tableau14[#All]"), _
CopyToRange:=Worksheets("Resultat").Range("B3:H3"), Unique:=False
'Si vous ajoutez des colonnes dans le résultat attention à mettre à jour le .Range("B3:H3")
'qui délimite la range où s'affiche les données filtrées. Sinon vous n'aurez pas toutes les données
'car il y aura un débordement et ce débordement ne sera pas prit en compte dans la fiche "resultat"
'Selection de la feuille "Resultat" après filtrage afin d'afficher les données filtrées après traitement
Sheets("Resultat").Activate
'Selection de la cellule A1 d'afficher le haut du tableau
Range("A1").Select
End SubCode from scratch
Sub FiltreAdv()
'déclaration des variables
Dim TSource As Range
Dim TCritere As Range
Dim TResult As Range
'définition des variables
'Set TSource = Worksheets("Source").Range("A1").CurrentRegion
Set TSource = Worksheets("Source").Range("Tableau_source[#All]")
'Set TCritere = Worksheets("Tools").Range("F4").CurrentRegion
Set TCritere = Worksheets("Tools").Range("Tableau14[#All]")
Set TResult = Worksheets("Resultat").Range("B3:H3")
'filtre avancé
TSource.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=TCritere, CopyToRange:=TResult
'TSource.AdvancedFilter(Excel.XlFilterAction.xlFilterCopy, CriteriaRange:=TCritere, CopyToRange:=TResult)
'aller à la feuille de résultat + positionnement en haut du tableau
ActiveWorkbook.Sheets("Resultat").Activate
Range("A1").Select
End SubLe 2ème code ne fonctionne plus, mais à la base les deux codes posent le même problème quand il était fonctionnel.
Mon tableau de critère comporte 3 colonnes et plusieurs lignes. (ce tableau est utilisé par le script)
Le tableau de critère de recherche dans cette image comporte des menus déroulants et ne sont pas utilisés par le script.
Les informations sélectionnées via ce tableau est automatiquement reportées sur le tableau de critère de recherche utilisé par le script (première image)
Merci d'avance pour votre aide.
Cordialement
Mauro