VBA Automatisation d'un filtre avancé

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

Diazz

XLDnaute Nouveau
Bonjour,

J'ai créé une macro toute bête, qui fonctionne très bien quand je la lance depuis la feuille Excel, mais qui plante quand je la lance depuis VBA 😕

Range("A1:B20315").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("E1:F1"), Unique:=True

Message d'erreur : "the extract range has a missing or illegal field name"


Auriez-vous une idée ?

Merci pour votre diligence à me répondre !

Le problème c'est que j'en ai besoin pour ce soir avant de partir en vacances ....🙁
 
Re : VBA Automatisation d'un filtre avancé

Bonjour,

peut être préciser le nom de la feuille :
Code:
Sheets("NomFeuille").Range("A1:B20315").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Sheets("NomFeuille").Range("E1:F1"), Unique:=True

voir préciser également l'bjet "workbook" si celui ci n'est pas le classeur actif...

bon après midi
@+

Edition : aarf un "sheets" avait sauté....
 
Dernière édition:
Re : VBA Automatisation d'un filtre avancé

Bonjour,
Ton code VBA fonctionne bien sur un tableau de 300 lignes avec 2 noms de champs bien définis en A1 et B1
Essaie aussi avec :
Range("A1:B20315").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("E1"), Unique:=True

Salutations
Robert
 
Re : VBA Automatisation d'un filtre avancé

RE bonjour,

Désolé de ne pas avoir donné de nouvelles : en réunion ...

J'ai fait une compilation des 2; avec

WSH_TRAVAIL.Range("A1:B20315").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("E1"), Unique:=True

mais toujours le même message d'erreur.🙁

Herdet, je ne colmprends pas top le sens de ta réponse....
J'e nai bien que 2 colonnes en entrée...
 
Re : VBA Automatisation d'un filtre avancé

Oui, nous sommes bien d'accord, source colonnes A et B sur 20315 lignes et résultats dans colonne E et F
J'ai juste proposé Range("E1") au lieu de Range("E1:F1") pour tester.

Peux-tu joindre un fichier exemple avec juste quelques dizaines de lignes de la feuille concernée ?
Quelle version d'Excel est utilisée ?

En principe c'est Sheets("WSH_TRAVAIL").Range("A1:B20315").... à moins que WSH_TRAVAIL soit le nom de la feuille que tu as renommée dans le code VBA
Robert
 
Dernière édition:
Re : VBA Automatisation d'un filtre avancé

Je suis en train de tester sur des volumétries un peu plus importantes en ayant spécifier la feuille de destination.

Je teste avec la ligne :

WSH_TRAVAIL.Range("A1:B20315").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=WSH_TRAVAIL.Range("E1"), Unique:=True



Oui WSH_TRAVAIL est mon objet feuille dans VBA.

Pour l'instant il semblerait que cela tienne ... je croise les doigts ...
 
Re : VBA Automatisation d'un filtre avancé

A essayer :

Application.ScreenUpdating = False
With WSH_TRAVAIL
Set tbl = .Cells(2, 1).CurrentRegion
tbl.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=.Range("E1"), Unique:=True
End With
Application.ScreenUpdating = True

Testé sur 35000 lignes ==> 0,5 seconde de traitement

Robert
 
Dernière édition:
Re : VBA Automatisation d'un filtre avancé

Bon,
Et bien, il sembelrait que cela tienne la route 😱

Herdet : en fait j'ai 620 000 lignes dans ma base, et il me faut 2 heures pour générer le tableau de 2 colonnes (j'ai plein d'autres tables, de traitements, de TCD, ....). En tout cas, je retiens ta seconde solution, au cas où ...

Sinon Herdet et Pierrot93, un grand MERCI à vous deux !

Il ne faut pas que je crie victoire trop vite, mais en tout cas, vous m'avez énormément aidé !! Très rapidement, c'est super !

Merci

A bientôt pour de "nouvelles aventures" peut-être ....
 
- 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

Retour