Bonjour,
j'ai un souci , j'ai une colonne et je voudrais savoir le nombres de valeur distinctes dans cette colonne
quelle est l'instruction en vba pour dénombrer les valeurs ?
Merci d'avance
Bonjour,
j'ai un souci , j'ai une colonne et je voudrais savoir le nombres de valeur distinctes dans cette colonne
quelle est l'instruction en vba pour dénombrer les valeurs ?
Merci d'avance
Tu as la fonction countif en vba équivalent à nb.si
par exemple je cherche le nombe de valeur égale à 12 dans la colonne A
Code : Sélectionner tout - Visualiser dans une fenêtre à part Valeur = Application.WorksheetFunction.CountIf(Columns("A:A"), 12)
Merci pour ton aide mais ce que je veux c'est compter le nombre de valeurs différentes
je vais écrire l'algorithme en espérant être précis
pour chaque cellule de la selection
si cellule = agence alors
selectionner la colonne
si les cellules de cette colonnes sont toute identiques
faire traitement
sinon faire traitement
fin si
fin si
fin pour
Ce qui m'interesse c'est surtt ce qui est en rouge
cordialement
Huître
Bonjour
nombre de valeur uniques dans une plage
on pourrait peut-^tre passer + simplement par un filtre ou par la fonction evaluate mais bon courage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Function compter_uniques(plage As Range) As Long Set dico = CreateObject("scripting.dictionary") For Each cellule In plage ref = cellule.Value If Not dico.exists(ref) Then dico.Add ref, ref End If Next compter_uniques = dico.Count End Function
alors je vais rajouter une difficulté
c'est un fichier télécharger à partir du web et on peut choisir l'emplacement des colonnes (donc difficulté)
moi ce que je compte faire ressemble à ça
et je dois réiterer le processus pour le nom du client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Sub multiple() Dim rg As Excel.Range Dim val As Integer Range("B14").Select Range(Selection, Selection.End(xlToRight)).Select For Each rg In Selection If rg = "Agence" Then rg.Select Range(Selection, Selection.End(xlDown)).Select Range(Selection).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _ "BO14"), Unique:=True val = Application.WorksheetFunction.CountA("BO") - 1 If val > 1 Then Range("B3").ClearContents End If End If Next End Sub
donc la je cherche la plage qui m'interesse en fontion du critère
ensuite je fais un filtre élaboré avec une extraction sans doublons que je copie dans la cellule BO14 et la je compte le nombre de champs dans la colonne BO en excluant le titre et je l'insere dans la variable , si cette variable est superieur à 1 alors je supprime le champs concerné
alors en plus d'etre fastidieux ,le code ne marche pas(le debogueur m'indique la ligne écrite en vert) mais voilà ce que je veux grossomodo c'est à dire supprimer une cellule en fonction du nombre de valeurs différentes qu'on peut trouver
Sinon si je reviens au code de Michel_M je n'ai pas bien compris les instructions
ah oui j'ai oublié un dernier détail plusieur colonnes peuvent avoir le même ce qui constitue une gêne non négligeable mais comment résoudre ce problème de doublons?
Merci d'avance
Tu n'as pas autre chose à rajouter après une proposition que je reprenne les codes N fois ?
Partager