Signaler

Erreur #NOM? sur Range().formula avec NB.SI.ENS [Résolu]

Posez votre question mod77 1222Messages postés vendredi 10 juillet 2009Date d'inscription 13 août 2017 Dernière intervention - Dernière réponse le 14 juin 2017 à 14:40 par mod77
Bonjour,

J'ai voulu entrer la formule ci après dans mon code vba, pour compter le nombre de "VRAI" présents dans ma colonne "A" :
 Range("A4").Formula = "=NB.SI.ENS(A6:A156";""VRAI"")" 


mais j'ai eu une erreur 1004. Alors j'ai cherché l'équivalent anglais:
Range("A4").Formula = "=COUNTIFS(A6:A156;""VRAI"")


mais maintenant j'ai: #NOM? affiché en A4 et je ne comprends pas pourquoi.

Quelqu'un peut-il m'aider svp?



Afficher la suite 
Utile
+1
plus moins
Bonjour
essaye avec une virgule
Range("A4").Formula = "=COUNTIFS(A6:A156,""VRAI"")"


Cordialement, 
Jordane                                                                 
Cette réponse vous a-t-elle aidé ?  
jordane45 18099Messages postés mercredi 22 octobre 2003Date d'inscription ModérateurStatut 21 août 2017 Dernière intervention - 14 juin 2017 à 10:34
Et puis.. sinon tu peux utiliser le FormulaLocal au lieu de Formula pour le mettre en français...
https://msdn.microsoft.com/fr-fr/library/office/ff838851.aspx
Répondre
mod77 1222Messages postés vendredi 10 juillet 2009Date d'inscription 13 août 2017 Dernière intervention - 14 juin 2017 à 13:06
Bonjour jordan45,

Merci pour la virgule !
Mais maintenant la formule s'affiche en clair dans la cellule comme un texte mais ne s'exécute pas!

une autre idée?
Répondre
Patrice33740 6109Messages postés dimanche 13 juin 2010Date d'inscription 21 août 2017 Dernière intervention - 14 juin 2017 à 14:24
Bonjour,

Attention VRAI peut être soit un texte, soit un booléen !!!
Lorsqu'on saisit Vrai dans une cellule au format Standard, Excel le convertit automatiquement en booléen (idem pour Faux).
Lorsqu'on saisit Vrai dans une cellule déjà au format Texte, Vrai reste du texte.

De plus, le fait de changer de format de cellule (Standard vers Texte ou inversement) ne change pas la donnée qu'elle contient déjà : un booléen reste un booléen et un texte reste un texte.

Comment faire la différence :
- mettre la cellule en alignement horizontal Standard (pas droite, pas gauche, pas centré)
- élargir la colonne : les booléens sont toujours centrés et en majuscule, les textes sont alignés à gauche et conservent la casse dans laquelle ils ont été saisis.

Pour du texte :
Range("A4").NumberFormatLocal = "Standard"
Range("A4").FormulaLocal = "=NB.SI.ENS(A6:A156;""VRAI"")"
Pour des booléens :
Range("A4").NumberFormatLocal = "Standard"
Range("A4").FormulaLocal = "=NB.SI.ENS(A6:A156;VRAI)"


PS : si il n'y a qu'un critère, employer NB.SI() au lieu de NB.SI.ENS()
Répondre
mod77 1222Messages postés vendredi 10 juillet 2009Date d'inscription 13 août 2017 Dernière intervention - 14 juin 2017 à 14:40
Alors là chapeau bas ! Merci beaucoup Patrice33740!

Là, je ne pouvais pas trouver seul j'en était encore à torturer ces formules:

'Range("A4").Value = Application.WorksheetFunction.CountIfs(Worksheets("Presence").Range("A6:A156"), "VRAI")
'Range("A4").Value = Worksheets("Presence").Range("A:A").Find(what:="VRAI", lookat:=xlWhole)

sans résultat hormis un zéro pour la 1ere.

Youpi :-)) je peux aller manger maintenant

merci beaucoup et à jordane45 aussi
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !