Compter les cellules visibles sans les doublons

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 ?
 

Dranreb

XLDnaute Barbatruc
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:

Monique

Nous a quitté
Repose en paix
Re : Compter les cellules visibles sans les doublons

Bonjour,

Par formule
Nombre de valeurs différentes visibles (avec deux critères)
Formule matricielle, à valider par ctrl, maj et entrée
 

Pièces jointes

  • SousTotal-NbSi-ValeursUniques.xls
    16 KB · Affichages: 372

harkoko

XLDnaute Nouveau
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*..
 

Dranreb

XLDnaute Barbatruc
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.
À+
 

harkoko

XLDnaute Nouveau
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. "
 

Dranreb

XLDnaute Barbatruc
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...
À+
 

harkoko

XLDnaute Nouveau
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. "
 

harkoko

XLDnaute Nouveau
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

  • J-02.xls
    48.5 KB · Affichages: 127
  • J-0 Programme.xls
    33 KB · Affichages: 137

Staple1600

XLDnaute Barbatruc
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)
 

harkoko

XLDnaute Nouveau
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 ?
 

harkoko

XLDnaute Nouveau
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..)
 

Discussions similaires

Statistiques des forums

Discussions
312 310
Messages
2 087 119
Membres
103 478
dernier inscrit
Frederic Lagger