Filtres avancés - conflit plage de critères

  • Initiateur de la discussion Notawiz
  • Date de début
N

Notawiz

Guest
Bonjour,

J'ai dans un même classeur (Excel 2002 SP1) une première feuille 'Machin', avec filtrage avancé sur une plage de critères Machin!$A$1:$C$2 nommée 'Criteres_Machin'.
Ca fonctionne pile-poil.

J'ai aussi une feuille 'Trucmuche', elle aussi avec filtrage avancé sur une plage de critères Trucmuche!$A$1:$C$2 nommée 'Criteres_Trucmuche'.

Et là les emm...s commencent. Dès que j'applique le filtre avancé sur la feuille 'Trucmuche' (exécuté correctement par Excel), la plage de critères 'Criteres_Machin' de la première feuille est tout à coup associée aux cellules Trucmuche!$A$1:$C$2, au lieu de sa plage originelle Machin!$A$1:$C$2, et pire encore, il m'efface tout bonnement le nom 'Criteres_Machin' dans la feuille 'Machin'.

Le même sac à noeuds est généré par Excel si je fais dans l'autre sens (après correction à la main des plages de critères). Et même si je place les critères en a1:c2 dans l'une des feuilles et disons dans h1:j2 de l'autre. Il finit toujours par changer le pointage vers la mauvaise feuille, et à effacer le nom de la plage dans l'autre feuille.

Comment empêcher Excel d'aller, sans qu'on le lui demande, ré-écrire la plages correspondante à une zone nommée, puis d'en effacer ce nom ???????
 
N

Notawiz

Guest
Bonjour Bernard,

Les macros en question sont assez longues, donc je n'en recopie que le passage concerné par le filtrage sur la première feuille :
Code:
    Sheets('Liste').Select
    Range('A5').Select
    Selection.CurrentRegion.Select
    Selection.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range('Criteres'), Unique:=False
et le filtrage sur la seconde feuille :
Code:
    Sheets('Times_EBG').Select
    Range('A5').Select
    Selection.CurrentRegion.Select
    Selection.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
        Range('EBG_range'), Unique:=False
A première vue aucune raison pour qu'Excel aille renommer/effacer des plages nommées...

Merci en tous cas d'y jeter un oeil.
Cordialement

Notawiz
 
A

AV

Guest
Ave,

A défaut d'exemple concret sous forme de fichier avec la macro à tester, ç'est un peu boule de cristal...
Tu peux essayer d'utiliser da&ns le ''CriteriaRange'' une référence incluant aussi le nom de la feuille, au cas où...

[NomFeuille!A5].CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=[NomFeuille!Critères]

AV [aaa]
 
N

Notawiz

Guest
Merci AV,

Je vais essayer ça.

Ca ne me dit toujours pas pourquoi Excel va modifier en douce la destination d'une autre plage nommée de critères que celle utilisée pour réaliser le filtrage.

Cordialement.

Notawiz
 
N

Notawiz

Guest
AV,

Pour info, la solution a consisté (malheureusement, mais bon) à supprimer les plages nommées, et à utiliser dans la macro un adressage de type :
Code:
Range('[FeuilleMachin!H1]:[FeuilleMachin!J2]')

J'espère que ça aidera d'autres personnes.

Bonne journée.
Notawiz
 

Discussions similaires

Réponses
12
Affichages
304

Statistiques des forums

Discussions
312 201
Messages
2 086 164
Membres
103 149
dernier inscrit
Deepkneec