Problème de syntaxe avec NB.SI

Bonjour à tous!

J'essaie actuellement d'utiliser une formule : "NB.SI"

Comme dans l'aide, je l'ai écrit de la telle sorte :

 nbElts = NB.SI(I19:I22;"1.*") 

pour trouver les nombres commençant par "1." (1.25 par ex.)

Il suffit que je sorte de la ligne de code pour qu'il m'arrête dans mon élan en m'affichant une boite de dialogue :

Erreur de compilation

Attendu : séparateur de liste ou )

en me surlignant les ":"

Les changer par une "," marche mais il remet ensuite le même message d'erreur en surlignant ensuite le ";"... Le remplacer également par une virgule marche aussi mais ensuite, à la lancée du programme, il n'apprécie pas :-/

Avez-vous déjà eut ce problème? Y avez vous trouvé une solution?

Merci beaucoup de votre aide !

bonjour,

c'est normal ce type de syntaxe est a utiliser pour du texte et non des chiffres

donc si tu cherche tout ce qui est compris entre 1et 2 ecrit

=NB.SI(A1:A15;">1")-NB.SI(A1:A15;">=2")

voila j’espère répondre a ta question

Bonjour,

Une autre proposition :

=SOMMEPROD((ENT(A1:A15)=1)*1)

@+

Bonjour

Essaye ce code :

Sub test()
nbElts = 0
For Each cell In Range("I19:I22")
If Int(cell) = 1 Then
nbElts = nbElts + 1
End If
Next cell
MsgBox nbElts
End Sub

Amicalement

Nad

Re bonjour!

Merci à vous trois mais... Aucune des solutions n'a fonctionné :-/ pour thibo et spyderpaint, il m'affiche le même message que moi précédemment,

Pour la réponse de Nad, le debbugage me surligne la ligne :

If Int(cell) =1 Then

Ça ne peut pas être un problème de bibliothèques manquantes?

Re

Sym a écrit :

Ça ne peut pas être un problème de bibliothèques manquantes?

Je ne saurais te dire. Tu as copié le code tel quel ou tu l'as adapté ?

Voici le fichier test :

18sym.zip (12.99 Ko)

Amicalement

Nad

Bonjour!

Non non je l'avais recopié tel quel...

Bonjour à tous,

Sym a écrit :

pour thibo et spyderpaint, il m'affiche le même message que moi précédemment,

C'est normal car nos amis n'ont pas vu que c'était un truc en VBA que tu voulais et ils t'ont donné une solution par formule.

Pour la solution de Nad :

Sym a écrit :

Pour la réponse de Nad, le debbugage me surligne la ligne :

If Int(cell) =1 Then

As-tu des chiffres en I19:I22 ? Ou du texte qui ressemble à des chiffres...

Sinon sur la base du code de Nad, essaie avec ça :

Sub test()
nbElts = 0
For Each cell In Range("I19:I22")
If Left(cell, 2) = "1." Then
nbElts = nbElts + 1
End If
Next cell
MsgBox nbElts
End Sub

Sinon une solution plus optimisée est de traduire la fonction NB.SI en vba :

Sub test2()
nbElts = Application.WorksheetFunction.CountIf(Range("I19:I22"), "1.*")
End Sub

Si ça déconne encore, envoie un bout de ton fichier qu'on regarde plus en avant.

Bonjour!

A vrai dire, je n'ai pas encore essayé, j'ai remarqué que j'étais en mode de compatibilité (le fichier avait du être créé avc excel 2003 ou antérieur) et je suis tombé sur un article qui m'a donné envie de tout recommencer à zéro:

Excel (Mode de compatibilité)

Raymond PENTIER, le lun. 19 janv. 2009 à 22:01:53

Si tu te contentes de lire le fichier ou de renseigner certaines cellules, aucune incidence.

Si tu modifies la structure et la mise en page du fichier, tu peux avoir des surprises en voulant l'enregistrer en version d'origine : Certaines fonctions (comme NB.SI.ENS) ou certaines mises en forme conditionnelles ne seront pas reconnues ; si tu augmentes trop le nombre de colonnes ou le nombre d'imbrications des fonctions logiques, ça va bloquer ; et ce ne sont que quelques exemples ...

Je vais donc refaire mon classeur avant tout

Toutefois merci pour ces conseils, je les gardes de côté et ils me serviront très certainement quand j'en serais la =)

bonjour,

Comme suggéré par vba_new il faut utiliser COUNTIF et non NB.SI dans VBA

de plus je ne pense pas que le caractère générique passe dans ce cas.

ça donne :

nbElts = WorksheetFunction.CountIf(Range("I19:I22"), ">1") - WorksheetFunction.CountIf(Range("I19:I22"), ">=2")

A+

Bonjour à tous,

Bonjour galopin

galopin01 a écrit :

de plus je ne pense pas que le caractère générique passe dans ce cas.

Ça passe si les cellules ont été passées au format texte avant d'avoir inscrit les nombres.
Rechercher des sujets similaires à "probleme syntaxe"