Extraits de mon programme Travaux
Objectif: Filtrer une base de données de la feuille Worksheet "Source" (WsData) et de déposer le résultat sur une Worksheet nommée "FiltTable", le critère de filtrage se trouve sur une Worksheet" Filters". Il s'agit du Range ("B7:B8") nommé "Criteria1" où B7 contient la catégorie cherchée et B8 le nom de cette catégorie. Exemple: B7 = 'catégorie' et B8 = 'jardin'.
Au moment de la ligne 'InputRange.AdvancedFilter…, le message d'erreur suivant apparait:
Erreur d'exécution 1004…
J'ai contrôlé maintes fois tous les critères, ils sont tous corrects et au bon endroit.
Ce programme a fonctionné avec ce code depuis des années sans aucune faute.
Quelqu’un aurait-il une idée quelle pourrait être la raison de ce message? Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Public Sub FilterObjects(myCat As String, myColumn As Integer, _ myoperator As String, ObjStatus As String, blnCntSum As Boolean) Dim InputRange As Range, OutputRange As Range Dim FinalRow As Integer, LastColumn As Integer '------------------------------------------- Worksheets("FiltTable").Cells.ClearContents 'Define the global output range ************ 'FinalRow a été définie auparavant Set OutputRange = Worksheets("FiltTable").Range("A1:L" & FinalRow) 'Define the global input range. ************ Set InputRange = WsData.Range("A1:L" & FinalRow) 'Clear the last filter criteria With Worksheets("Filters") .Range("criteria1").ClearContents End With 'Write the new filter criteria into cells B7:B8 on worksheet "Filters" With Worksheets("Filters") .Range("B7").Value = WsData.Cells(1, myColumn) '= Catégorie .Range("B8").Value = myCat '= jardin End With 'Copy filtered range of database into sheet "FiltTable" InputRange.AdvancedFilter _ Action:=xlFilterCopy, CriteriaRange:=Worksheets("Filters").Range("Criteria1"), _ copytorange:=OutputRange Erreur d'exécution 1004. Le nom de champ est incorrect ou manquant dans la zone d'extraction.
Partager