Compter les cellules visibles sans les doublons

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

harkoko

XLDnaute Nouveau
Bonjour,
Dans un tableau Excel j’effectue d’abord un tri sur deux colonnes (colonnes A et B) puis je souhaite compter le nombre de cellules visible dans la colonne A sans compter les doublons.
Voici mon code :
fileToOpen = Application.GetOpenFilename()
Workbooks.OpenText Filename:=fileToOpen

Selection.AutoFilter

ActiveSheet.Range("$A$1:$AA$4776").AutoFilter Field:=1, Criteria1:="F*" ' attention il manque le filtre pour garder ce qui commence par 33000
ActiveSheet.Range("$A$1:$AA$4776").AutoFilter Field:=2, Criteria1:="V10"
Sheets.Add After:=Sheets(Sheets.Count)
Range("B8").Select
ActiveCell.FormulaR1C1 = _
"=SUMPRODUCT(1/COUNTIF(Feuil1!R[1]C[-1]:R[4768]C[-1],Feuil1!R[1]C[-1]:R[4768]C[-1]))"
Range("B8").Select

Le problème est que je compte également les cellules non visibles et je ne comprends pas pourquoi. Quelqu’un peut-il m’aider ?
 
Re : Compter les cellules visibles sans les doublons

Bonjour
Pourquoi ne pas ajouter deux paramètres à votre SUMPRODUCT qui comparent les colonnent A et B respectivement à "F*" et "V10"
entre parenthèses + 0 bien sûr pour transformer les booléens en numériques 0 ou 1

ou alors un seul paramètre comme le font certains en multipliant tout mais alors autant faire SOMME en matriciel...
À+
 
Dernière édition:
Re : Compter les cellules visibles sans les doublons

Bonjour,

Je ne souhaite pas faire de filtre élaborés mais bien un programme VBA. Pour le moment j'en crée un qui s'applique a une taille de tableau mais je compte le modifier à terme pour qu'il s'applique à n'importe quel tableau quelque soit le nombre de ligne..
J'avais bien vue cette formule matricielle mais je ne sais pas comment la faire exécuter dans un programme VBA..

Concernant le filtre pour la colonne A je n'arrive pas non plus à ajouter deux critères : je veux voir toutes les lignes commençant par F* et par 33*..
 
Re : Compter les cellules visibles sans les doublons

Bonjour
...pour qu'il s'applique à n'importe quel tableau quelque soit le nombre de ligne
C'est un problème archi classique.
Moi, traditionnellement, je passe systématiquement par des noms de plages qui couvrent l'ensemble des lignes de mes tableaux, définis aux niveaux des feuilles, que j'appelle "Tablo". Sinon il y a d'autres voies possédant chacune ses avantages et ses inconvénients. Voir dans l'aide propriété UsedRange, CurrentRegion, AutoFilter.Range, SpecialCells et méthodes Find et End.
À+
 
Re : Compter les cellules visibles sans les doublons

@Daneb : Je ne suis pas assez calé en excel pour comprendre ta réponse.. Peut être peux tu l'illustrer avec un exemple de code ou mieux modifier mon code à ta façon..

@Tous : Personne n'a répondu à ma question : " Le problème est que je compte également les cellules non visibles et je ne comprends pas pourquoi. "
 
Re : Compter les cellules visibles sans les doublons

Joins (enfin) un classeur pour qu'on puisse regarder, tester et proposer.
On ne va quand même pas le faire nous même uniquement en y incluant ton code: on ne sait pas à quoi il s'applique...
À+
 
Re : Compter les cellules visibles sans les doublons

Désolé mais j'ai fait une petite erreur dans l'intitulé de mon message.. Je travail avec excel 2007 et non pas excel 2010.. Je ne sais pas si cela change qqch pour ce que je souhaite faire..

@Draneb : Je ne suis pas assez calé en excel pour comprendre ton message.. Peut-être peut tu l'illustrer avec un exemple de code ou mieux modifier mon code..

@Tous : personne n'a répondu à ma question initiale : "Le problème est que je compte également les cellules non visibles et je ne comprends pas pourquoi. "
 
Re : Compter les cellules visibles sans les doublons

Désolé de ne pas avoir joint un classeur plus tôt mais je pensais m’en sortir plus facilement. Je suis bien dans une démarche d’apprentissage pour à terme réussir à être autonome sur ce type de programme. J’ai encore passé pas mal de temps dessus et il reste beaucoup de choses que je ne comprends pas.

Ce que je souhaite programmer : j’effectue des filtres dans la FEUIL1 du fichier « j-02 » puis je compte le nombre de ligne sans doublon de cette feuille. Le résultat s’inscrit sur la FEUIL2 du fichier « j-02 ». L’opération peut se répéter plusieurs fois en filtrant différentes colonnes suivant différents critères, j’inscris les différents résultats dans différentes cases. Tous le programme est contenu dans un fichier appelé « j-0 ».

Le premier problème est que mon programme ne s’adapte pas à la taille du tableau donc je dois à chaque fois effectuer de petites modifications au niveau du nombre de lignes (le nombre de colonnes est toujours identique).
Le second problème est que le résultat qui s’inscrit dans la case FEUIL2 du fichier « j-02 » est une formule qui renvoi à la FEUIL1 et non un résultat numérique. Donc quand je change les filtres pour compter autre chose la valeur change également et au final toutes mes valeurs seront identiques.
Le troisième problème est que je ne comprends pas pourquoi un filtre apparait sur la FEUIL2.

Merci par avance pour votre aide et vos explications
PS : La taille des fichiers est limitée pour le forum j’ai donc réduit le tableau mais ceux que je dois trier peuvent contenir 5000 lignes.. D’où l’intérêt du programme..
 

Pièces jointes

Re : Compter les cellules visibles sans les doublons

Bonsoir

Je ne souhaite pas faire de filtre élaborés mais bien un programme VBA.

Il est autorisé depuis le 17 janvier 2011, d'utiliser le filtre élaboré dans un programme VBA.

Donc tu peux faire confiance à Pierrot93 quand il te conseille d'utiliser l'AdvancedFilter.
(petit nom du filtre élaboré en VBA)
 
Re : Compter les cellules visibles sans les doublons

Bonsoir



Il est autorisé depuis le 17 janvier 2011, d'utiliser le filtre élaboré dans un programme VBA.

Donc tu peux faire confiance à Pierrot93 quand il te conseille d'utiliser l'AdvancedFilter.
(petit nom du filtre élaboré en VBA)


J'ai fait une erreur dans l'intitulé de mon message.. J'utilise excel 2007.. Les filtres élaborés fonctionnent avec cette version d'excel ?
 
Re : Compter les cellules visibles sans les doublons

Ce que je lis dans l'aide VBA est qu'avec cette méthode je peux filtrer des données à partir d'une liste basée sur une plage de critères.. Par exemple :

Range("Database").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=Range("Criteria")

Mais comment que la zone de critère nommée "critéria" est de ne pas garder les doublons.. (sachant que par doublon j'entend cellules identiques dans une même colonne et non pas ligne identique dans l'ensemble du tableau..)
 
- 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

Réponses
1
Affichages
376
Retour