Filtre avancé ou élaboré en VBA

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

MichD

XLDnaute Impliqué
Bonjour à tous,

La question est posée directement dans le classeur. Il s'agit de l'exécution d'une procédure VBA utilisant une fonction personnalisée comme critère pour extraire seulement les cellules en vert.
Si on exécute le filtre à l'aide des commandes du ruban ou du menu, cela fonctionne, mais en vba, ma procédure semble avoir un pépin. Est-ce que quelqu'un a une explication ?

Merci à l'avance pour votre collaboration.
 

Pièces jointes

Re : Filtre avancé ou élaboré en VBA

| c'est pas super pour voir où se trouve le problème 😕.[/QUOTE]

****Il ne faut pas te gêner si tu veux l'enlever! Le filtre élaboré bloque sur cette fonction lorsque l'on veut exécuter la procédure en VBA. Ma question vise à comprendre pourquoi cela arrive pour la procédure en VBA, pourtant cela fonctionne très bien si on utilise la même fonction à partir de la commande "Filtre avancé" de la barre des menus ou du ruban.
 
Re : Filtre avancé ou élaboré en VBA

Bonjour,

Il semblerait que les appels incessants et inopportuns de la fonction (à chaque cellule changée) lui fassent perdre « la tête »* et dans ta macro il y en a pas mal !
Cela m’est arrivé avec d’autres fonctions personnelles et tu devrais pouvoir retrouver quelques discussions sur ce phénomène.

*VBA ne serait-il pas parfait ?

Peux-tu me dire, s'il te plait, l’intérêt de passer, ici, par cette fonction ?
Moi, qui suis mal à l’aise avec ce type de procédure, je serais passé par
Code:
Sub Recopie_cellules_En_Vert()
  Dim Rg As Range
  Rows("15:" & Rows.Count).Delete
  Application.ScreenUpdating = False
  Set Rg = Range("A1:F10")
  For A = 1 To Rg.Columns.Count
    Cells(1, A).AutoFilter
    Range(Cells(1, A), Cells(10, A)).AutoFilter Field:=A, Criteria1:=RGB(51, 204 _
        , 51), Operator:=xlFilterCellColor
    Range(Cells(1, A), Cells(10, A)).Copy Cells(15, A) 'pour avoir aussi la couleur
    Rg.AutoFilter
  Next
  Range("A2").Select
End Sub
A noter qu'avec ma version 2010 je peux filtrer et flirter avec la couleur.
Dans le fichier joint, le bouton a 2 "actions".
 

Pièces jointes

Re : Filtre avancé ou élaboré en VBA

Merci c'est très bien.

Cette approche n'est pas disponible pour toutes les versions d'Excel !

Mais, je cherche toujours une explication au phénomène que j'ai décrit. Est-ce un "bogue", une "limite" en vba ? C'est l'explication qui m'intéresse s'il y en a une afin de comprendre le processus par lequel VBA accepte ou refuse certains traitements. Évidemment, comme tu l'as démontré, il y a plusieurs façons de faire autrement...mais ce n'est pas ce que je cherche.
 
Re : Filtre avancé ou élaboré en VBA

Bonsoir,

J’avais bien compris ton questionnement et n’aurais pas dû écrire « VBA n’est-il pas parfait ? ».
Quand je vois ce message Erreur.jpg

n’apparaître qu’au troisième appel, je me dis « VBA, tu n’es pas au point ! ».

N’étant pas sectaire ni compétent, je laisse à chacun la possibilité d’en déduire ce qu’il veut et j’essaie de contourner le problème.

J’ai bien précisé que le code que j’ai donné, fonctionnait avec ma version . Pour d’autres versions, celui de BOISGONTIER est des plus performants !

Désolé de ne pas faire avancer la chose; maintenant, si tu trouves l'explication exacte, je serai heureux d’en connaître la teneur et te remercie par avance de la communication 😉.
 

Pièces jointes

  • Erreur.jpg
    Erreur.jpg
    35.7 KB · Affichages: 105
  • Erreur.jpg
    Erreur.jpg
    35.7 KB · Affichages: 100
Dernière édition:
Re : Filtre avancé ou élaboré en VBA

Re

Bon, en l'état, c'est toujours diffcile de savoir pourquoi le filtre élaboré en manuel fonctionne et pas la macro. Mais souvent c'est parce qu'on se complique un peu l'existence . De plus avec l'évolution des versions, c'est encore plus difficile 😕.

Etant juste compétent en 2 mots 😱, voici une autre façon d'arriver à ses fins pour extraire les couleurs et ma vision des choses pour le filtre élaboré qui doit avoir toujours une bonne définition des en-têtes dès le départ 🙂.
 

Pièces jointes

Dernière édition:
- 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

J
Réponses
1
Affichages
2 K
H
  • Question Question
Réponses
2
Affichages
1 K
H
S
Réponses
2
Affichages
975
stephane-wizzard
S
Réponses
2
Affichages
1 K
C
Réponses
6
Affichages
5 K
cabubu
C
Z
Réponses
4
Affichages
1 K
V
Réponses
3
Affichages
2 K
V
M
Réponses
16
Affichages
7 K
Mayzuka
M
C
Réponses
19
Affichages
5 K
C
J
Réponses
5
Affichages
2 K
J
Retour