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 ?
 

Staple1600

XLDnaute Barbatruc
Re : Compter les cellules visibles sans les doublons

Re

Tu as vu que j'avais mis un lien dans mon précédent message ?

EDITION
:
Testes cet exemple pour mieux comprendre sur un classeur vierge
Code:
Sub exempleFE()
Dim rep
[A1] = "ENTETE"
[a2:a11] = [TRANSPOSE({1,1,1,1,2,3,4,5,6,7})]
rep = MsgBox("Appliquer le filtre élaboré?", vbQuestion + vbOKOnly, "Choix")
If rep = vbOK Then
Range("A1:A11").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
End If
End Sub
Notes le : Unique:=True
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Compter les cellules visibles sans les doublons

Bonsoir
Apparement ici le seul but des filtres était d'obtenir deux comptages sans doublons, ce qui ne marche pas chez moi car les formules englobent les lignes masquées. Ils ne sont d'ailleurs pas nécessaires, essayez ça:
VB:
Sub Test1()
Dim FileToOpen As Variant, RFin As String
FileToOpen = Application.GetOpenFilename()
If FileToOpen = False Then Exit Sub
Workbooks.OpenText Filename:=FileToOpen
With Worksheets("Feuil1").UsedRange: RFin = ":R" & .Row + .Rows.Count - 1: End With
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.[C8].FormulaArray = "=SUM((Feuil1!R2C8" & RFin & "C8<>"""")/COUNTIF(Feuil1!R2C8" _
   & RFin & "C8,Feuil1!R2C8" & RFin & "C8))"
ActiveSheet.[B8].FormulaArray = "=SUM(OR(LEFT(Feuil1!R2C1" & RFin & "C1,1)=""F"",LEFT(Feuil1!R2C1" _
   & RFin & "C1,2)=""33"")/COUNTIF(Feuil1!R2C1" & RFin & "C1,Feuil1!R2C1" & RFin & "C1))"
End Sub
À+
 
G

Guest

Guest
Re : Compter les cellules visibles sans les doublons

bonjour, Harkoko,
Dranreb:),
Monique:):)(bises)
Pierrot:):)
Staple:):) (advancedFilter, quand tu nous tiens...:))

@Voici un exemple avec advancedFilter et SubTotal, le critère "non vide" s'exprime par "><" pour les filtres avancés:

VB:
Sub NbNonVidesUniques()
   Dim plgCrit As Range
 
   'Travailler sur tout le tableau
   With Sheets("Feuil1").Range("A2").CurrentRegion
        'Créer un zone de critère de 2 cellules (critère non-vide)
        Set plgCrit = .Offset(, .Columns.Count + 2).Resize(2, 1)
        plgCrit.Value = Application.Transpose(Array("Article", "><"))
 
        'Filtrer les valeurs uniques
        .AdvancedFilter Action:=xlFilterInPlace, criteriarange:=plgCrit, unique:=True
 
        'Afficher le résultat
        MsgBox "Nombre d'article différents: " & Application.Subtotal(3, .Columns(8))
 
        'Réafficher toutes les données
        .Parent.ShowAllData
    End With
 
    'Vider la zone de critère
    plgCrit.ClearContents
 
End Sub

A+ à tous
 
Dernière modification par un modérateur:

Staple1600

XLDnaute Barbatruc
Re : Compter les cellules visibles sans les doublons

Bonjur le fil

Bonjour Hasco, bonjour la pluie
J'ai pas pu m'empêcher
plgCrit.Value = [Transpose({"Article", "><")})]

Ps:je crois me rappeler que tu affectionnes particulièrement ce genre de raccourci syntaxique ;)
 
G

Guest

Guest
Re : Compter les cellules visibles sans les doublons

Re,

@L'agrafe,pas ceux qui obligent excel à une évaluation ou qui rendent le code moins "lisible" (pour moi bien entendu:)).

L'évaluation ou ses représentants ([]) je les garde pour les cas exceptionels, les grandes occasions:)

A++l'ami
 
G

Guest

Guest
Re : Compter les cellules visibles sans les doublons

Re,

C'est sûr qu'il n'y a pas grand monde sur le boulevard:)
Mettons nous à une terrasse et buvons notre chagrin d'avoir rien à vbister:)
Bon ap. Voisin régional
 
G

Guest

Guest
Re : Compter les cellules visibles sans les doublons

Re,

@Dranreb, t'inquiète pas ça viendra!

les autres sont des vieux compagnons de route et nous ne nous somme croisés que quelque fois.

pour sécher tes larmes, je t'offre un café:):)

A+
 
Dernière modification par un modérateur:

Staple1600

XLDnaute Barbatruc
Re : Compter les cellules visibles sans les doublons

Bonsoir le fil


BrunoM45
C'est normal, les nouveaux membres d'XLD sont trés peu à lire la charte et beaucoup à faire du "multipostage" sans le signaler.
C'est dommage mais c'est comme ça, les temps changent, et XLD aussi.
 

harkoko

XLDnaute Nouveau
Re : Compter les cellules visibles sans les doublons

Désolé si j'ai fait du multipostage mais la discusion avait du mal à démarer ici et j'avais vraiment besoin d'avancer.. Perso j'ai beaucoup utilisé et participé à des forums dans d'autres domaines que l'informatique et avoir les mêmes discusions sur différents forums permet de toucher plus de monde et de croiser les réponses..

Bien cordialement
David
 

Discussions similaires

Statistiques des forums

Discussions
312 307
Messages
2 087 095
Membres
103 467
dernier inscrit
Pandiska