Filtre élaboré avec des cellules vides dans la plage de données

mdidish

XLDnaute Junior
Bonjour
J'ai réalisé une macro qui, à un moment, va réaliser un filtre élaboré. J'ai isolé cette séquence dans le fichier exemple :
Sub Macro1()
Range("A1:D6").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"H1:K2"), CopyToRange:=Range("F4"), Unique:=False
End Sub

Parmi la plage de données, certaines lignes ont des cellules vides ; j'aimerais que le filtre sélectionne les lignes répondant aux critères, même si certaines cellules ne sont pas remplies.
Plus concrètement dans le fichier exemple, la macro est définie pour réalisé un filtre élaboré avec :
- la plage de données en A1:D6
- la zone de critère en H1:K2
- copier les résultats en F4

J'aimerais donc que ce filtre sélectionne les clés n°1 (les critères âge, sexe et durée correspondent), mais également les clés 4 et 5 (les critères remplis correspondent aux critères, même si chaque ligne a une cellule vide).

Est-ce possible sur Excel 2003 ?

Merci d'avance.
 

Pièces jointes

  • Essai Filtre.xls
    24 KB · Affichages: 59
  • Essai Filtre.xls
    24 KB · Affichages: 61
  • Essai Filtre.xls
    24 KB · Affichages: 54

mdidish

XLDnaute Junior
Re : Filtre élaboré avec des cellules vides dans la plage de données

Merci pour la réponse.
Y aurait-il une autre solution sans avoir à redéfinir la plage de critères avec tous les cas possibles ?

En fait ce filtre évalue en vrai une dizaine de critère, dont chacun peut ne pas être remplis dans la plage de données. Et la plage de critère résulte d'un copier/coller d'une ligne d'un autre tableau qui comporte 200 lignes ; en gros ce filtre va être réalisé 200 fois de suite, ça complique un peu les choses si je dois prévoir toutes les cas envisageables à chaque fois (avec un, deux, trois, quatre jusqu'à 9 cellules vides).
 

mdidish

XLDnaute Junior
Re : Filtre élaboré avec des cellules vides dans la plage de données

@Gelinotte : merci pour la réponse ; j'ai essayé de reproduire avec 4 critères pouvant être vide, mais ça ne marche pas (cf pièce jointe).
Pouvez-vous en expliquer le principe ?
 

Pièces jointes

  • Essai Filtre(3.xls
    41 KB · Affichages: 51

Gelinotte

XLDnaute Accro
Re : Filtre élaboré avec des cellules vides dans la plage de données

Bonsoir,

Ça ne fonctionnait pas, car il faut que la plage qui reçoit le résultat soit complètement vide. J'ai corrigé la macro afin de dynamiser les deux champs : celui des données AàF et le celui des résultats.

C'est-à-dire que quel que soit le nombre de lignes de la colonne A, la macro s'adapte.
Et que quel que soit le nombre de lignes de la colonne H, la macro s'adapte.

Examine cela.

G
 

Pièces jointes

  • Essai Filtre(4).xls
    42.5 KB · Affichages: 56

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Filtre élaboré avec des cellules vides dans la plage de données

Bonsoir mdidish, à tous,

Un autre essai avec trois champs calculés non nommés. Les critères sont à saisir en colonne N.
La zone de critères à appliquer pour le filtre avancé est la zone H1:J2.

La macro:
VB:
Sub Macro1()
  Range("F4:I100").Clear
  Range("A1: D6").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
    "H1:J2"), CopyToRange:=Range("F4:i4"), Unique:=False
End Sub
 

Pièces jointes

  • Essai Filtre v1.xls
    39.5 KB · Affichages: 62
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260