Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Fonction Countif

5 réponses
Avatar
Toto
Bonsoir,

Je souhaiterais ecrire en vba, une partie de programme qui me donne, pour
une colonne d'une feuille excel, le nombre de valeurs différentes qu'elle
contient.
Pour ceux qui connaissent les fonctions de Macrofunc, c'est l'équivalent de
la fonction NB.DIFF.
Mes recherches sur le web n'ont rien donné
Je pense qu'une des solutions pourrait être rédigée à l'aide de COUNTIF,
mais j'ai du mal à en trouver la syntaxe.

Merci par avance à ceux qui pourraient m'éclairer

Cdlt

GA

5 réponses

Avatar
JB
Bonsoir,

x = [Sumproduct(1/countif(A2:A10,A2:A10))]

JB
http://boisgontierjacques.free.fr

On 14 août, 18:53, "Toto" wrote:
Bonsoir,

Je souhaiterais ecrire en vba, une partie de  programme qui me donne, p our
une colonne d'une feuille excel, le nombre de valeurs différentes qu'el le
contient.
Pour ceux qui connaissent les fonctions de Macrofunc,  c'est l'équiva lent de
la fonction NB.DIFF.
Mes recherches sur le web  n'ont rien donné
Je pense qu'une des solutions pourrait être rédigée à l'aide de C OUNTIF,
mais j'ai du mal à en trouver la syntaxe.

Merci par avance à ceux qui pourraient m'éclairer

Cdlt

GA


Avatar
Toto
Merci Jacques pour la célérité de ta réponse.

Un eccueil toutefois. Cette formule fonctionne très bien... si le nombre de
valeurs de la colonne n'est pas trop important.
Pour ce qui me concerne, j'ai 15 000 articles. Le programme met près de 45
secondes pour apporter la réponse. La formule NB.DIFF met 0,04 seconde.

Qui dit mieux...

Cdlt


"JB" a écrit dans le message de news:

Bonsoir,

x = [Sumproduct(1/countif(A2:A10,A2:A10))]

JB
http://boisgontierjacques.free.fr

On 14 août, 18:53, "Toto" wrote:
Bonsoir,

Je souhaiterais ecrire en vba, une partie de programme qui me donne, pour
une colonne d'une feuille excel, le nombre de valeurs différentes qu'elle
contient.
Pour ceux qui connaissent les fonctions de Macrofunc, c'est l'équivalent
de
la fonction NB.DIFF.
Mes recherches sur le web n'ont rien donné
Je pense qu'une des solutions pourrait être rédigée à l'aide de COUNTIF,
mais j'ai du mal à en trouver la syntaxe.

Merci par avance à ceux qui pourraient m'éclairer

Cdlt

GA


Avatar
JB
Function NBDiff(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In champ
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
NBDiff = MonDico.Count
End Function

Sub essai()
MsgBox NBDiff([A1:A10])
End Sub

JB



On 14 août, 20:58, "Toto" wrote:
Merci Jacques pour la célérité de ta réponse.

Un eccueil toutefois. Cette formule fonctionne très bien... si le nombr e de
valeurs  de la colonne n'est pas trop important.
Pour ce qui me concerne, j'ai 15 000 articles. Le programme met près de 45
secondes pour apporter la réponse. La formule NB.DIFF met 0,04 seconde.

Qui dit mieux...

Cdlt

"JB" a écrit dans le message de news:

Bonsoir,

x = [Sumproduct(1/countif(A2:A10,A2:A10))]

JBhttp://boisgontierjacques.free.fr

On 14 août, 18:53, "Toto" wrote:



> Bonsoir,

> Je souhaiterais ecrire en vba, une partie de programme qui me donne, po ur
> une colonne d'une feuille excel, le nombre de valeurs différentes qu' elle
> contient.
> Pour ceux qui connaissent les fonctions de Macrofunc, c'est l'équival ent
> de
> la fonction NB.DIFF.
> Mes recherches sur le web n'ont rien donné
> Je pense qu'une des solutions pourrait être rédigée à l'aide de COUNTIF,
> mais j'ai du mal à en trouver la syntaxe.

> Merci par avance à ceux qui pourraient m'éclairer

> Cdlt

> GA- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
JB
Function NBDiff(champ)
Set MonDico = CreateObject("Scripting.Dictionary")
temp = Application.Transpose(champ)
For Each c In temp
If Not MonDico.Exists(c) Then MonDico.Add c, c
Next c
NBDiff = MonDico.Count
End Function

Sub essai()
MsgBox NBDiff([A1:A10])
End Sub

JB


On 14 août, 21:07, JB wrote:
Function NBDiff(champ As Range)
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In champ
    If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
  Next c
  NBDiff = MonDico.Count
End Function

Sub essai()
   MsgBox NBDiff([A1:A10])
End Sub

JB

On 14 août, 20:58, "Toto" wrote:



> Merci Jacques pour la célérité de ta réponse.

> Un eccueil toutefois. Cette formule fonctionne très bien... si le nom bre de
> valeurs  de la colonne n'est pas trop important.
> Pour ce qui me concerne, j'ai 15 000 articles. Le programme met près de 45
> secondes pour apporter la réponse. La formule NB.DIFF met 0,04 second e.

> Qui dit mieux...

> Cdlt

> "JB" a écrit dans le message de news:
>
> Bonsoir,

> x = [Sumproduct(1/countif(A2:A10,A2:A10))]

> JBhttp://boisgontierjacques.free.fr

> On 14 août, 18:53, "Toto" wrote:

> > Bonsoir,

> > Je souhaiterais ecrire en vba, une partie de programme qui me donne, pour
> > une colonne d'une feuille excel, le nombre de valeurs différentes q u'elle
> > contient.
> > Pour ceux qui connaissent les fonctions de Macrofunc, c'est l'équiv alent
> > de
> > la fonction NB.DIFF.
> > Mes recherches sur le web n'ont rien donné
> > Je pense qu'une des solutions pourrait être rédigée à l'aide de COUNTIF,
> > mais j'ai du mal à en trouver la syntaxe.

> > Merci par avance à ceux qui pourraient m'éclairer

> > Cdlt

> > GA- Masquer le texte des messages précédents -

> - Afficher le texte des messages précédents -- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Avatar
Toto
Excellent et encore merci

Cdlt

GA


"JB" a écrit dans le message de news:



Function NBDiff(champ As Range)
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In champ
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
NBDiff = MonDico.Count
End Function

Sub essai()
MsgBox NBDiff([A1:A10])
End Sub

JB



On 14 août, 20:58, "Toto" wrote:
Merci Jacques pour la célérité de ta réponse.

Un eccueil toutefois. Cette formule fonctionne très bien... si le nombre
de
valeurs de la colonne n'est pas trop important.
Pour ce qui me concerne, j'ai 15 000 articles. Le programme met près de 45
secondes pour apporter la réponse. La formule NB.DIFF met 0,04 seconde.

Qui dit mieux...

Cdlt

"JB" a écrit dans le message de news:

Bonsoir,

x = [Sumproduct(1/countif(A2:A10,A2:A10))]

JBhttp://boisgontierjacques.free.fr

On 14 août, 18:53, "Toto" wrote:



> Bonsoir,

> Je souhaiterais ecrire en vba, une partie de programme qui me donne,
> pour
> une colonne d'une feuille excel, le nombre de valeurs différentes
> qu'elle
> contient.
> Pour ceux qui connaissent les fonctions de Macrofunc, c'est l'équivalent
> de
> la fonction NB.DIFF.
> Mes recherches sur le web n'ont rien donné
> Je pense qu'une des solutions pourrait être rédigée à l'aide de COUNTIF,
> mais j'ai du mal à en trouver la syntaxe.

> Merci par avance à ceux qui pourraient m'éclairer

> Cdlt

> GA- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -