Pb de conflit entre le filtrer élaboré et le filtre par la méthode Collection

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

T

thuan

Guest
Bonjour le forum
J'ai un petit pb de conflit entre le filtre élaboré d'excel et le filtre que je met en place avec la méthode Collection, le pb c'est que lorsque je filtre une colonne et que j'utilise la méthode collection ben le résultat que j'obtient n'as pas cohérant.
Merci pour votre aide
 

Pièces jointes

Bonjour Thuan,

Voici un petit script qui pourra je l'espère te dépanner

Sub RENATO()
Range("A1").Select
Selection.Copy
Range("J1").Select
ActiveSheet.Paste
Range("B1:C1").Select
Application.CutCopyMode = False
Selection.Copy
Range("H1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("H2").Select
AGE = InputBox("Veillez renseigner ici l'âge à filtrer", , "exemple saisie : 22")
ActiveCell.FormulaR1C1 = AGE
Range("I2").Select
SEXE = InputBox("Veillez renseigner ici le SEXE à filtrer", , "exemple saisie : F")
ActiveCell.FormulaR1C1 = SEXE
Range("A1:C500").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"H1:I2"), CopyToRange:=Range("J1"), Unique:=True
Range("F18").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[4])-1"
Range("F18").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("H:J").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("F18").Select
End Sub

A bientôt

Rénato
 
Re Thuan,

Oups, je viens corriger un petit oubli (sur le champs Prénom), colle ce code en annule et remplace.

Sub RENATO()
Range("A1").Select
Selection.Copy
Range("J1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1:C1").Select
Selection.Copy
Range("G1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("G2").Select
NOM = InputBox("Veillez renseigner ici le Prénom à filtrer" & Chr(13) & "Saisie Facultative")
ActiveCell.FormulaR1C1 = NOM
Range("H2").Select
AGE = InputBox("Veillez renseigner ici l'âge à filtrer" & Chr(13) & "Saisie Facultative")
ActiveCell.FormulaR1C1 = AGE
Range("I2").Select
SEXE = InputBox("Veillez renseigner ici le SEXE à filtrer" & Chr(13) & "Saisie Facultative")
ActiveCell.FormulaR1C1 = SEXE
Range("A1:C500").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"G1:I2"), CopyToRange:=Range("J1"), Unique:=True
Range("F18").Select
ActiveCell.FormulaR1C1 = "=COUNTA(C[4])-1"
Range("F18").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Columns("G:J").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Range("F18").Select
End Sub


J'ai cherché une solution sans VBA avec une tantative d'imbrication de la fonction SOUS.TOTAL sans succès...mais si Celeda, Monique ou d'autres passent sur ce topic...ils te proposeront probablement plus simple.

A+

Rénato
 
Bonjour Rénato
Merci de m'avoir répondu, mais vois tu le pb est que je veux garder le filtre automatique de excel et en fonction de ce filtre je veux pouvoir calculer le nombre de valeurs différentes.
Je m'explique, je sais mettre en place ma méthode collection et donc je lui dis de filtrer les valeurs de la cellule B2 à Bi mais le pb c'est que lui si je met en place le filtre automatique ben il me compte pas bien les cellules.
 
Bonjour Monique, bonjour le forum
Merci pour ton aide monique
Mais ce que tu m'as fait en trop compliqué et en plus je crois que je dois pas très bien m'exprimer.
Le truc c'est que je veux garder mes filtres automatiques sur les colonnes de départ et lorsque je filtre une colonne donc mon filtre automatique me met les valeurs filtrer et avec ces valeurs filtrer je veux pouvoir compter le nombre de valeurs diférentes (c'est la que j'utilise la méthode Collection) et l'afficher. en fait Ma Méthode collection prendre les nouvelles valeurs filtrer pour les rentrer dans une listbox et apres je viens juste compter le nombre d'élément dans ma listbox
 
Bonjour,

Autre système en gardant le filtre automatique.
Tu insères une colonne contenant une formule te renvoyant :
0 si la ligne est vide ou s'il s'agit d'un doublon,
1 sinon.
Dans ton filtre, tu ne gardes que les 1.
 

Pièces jointes

Bonjour à tous,

En complément de la réalisation de Monique ci-dessus

En cellule B2 je modifierai juste la syntaxe en ce sens SOUS.TOTAL(9;A3:A20) avec un no_fonction à 9 plutôt que 3.

Ce qui permet de dénombrer les valeurs distinctes de la colonne prénom.

A+

Rénato
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
16
Affichages
915
Réponses
16
Affichages
1 K
Réponses
5
Affichages
386
Retour