NB.SI en code VBA...

Neo_MTL

XLDnaute Nouveau
Bonjour à tous,

Je suis sur un problème de comment écrire en code VBA la formule NB.SI. je ne veux pas qu'il puisse alelr mettre dans une cellule la formule car là où je veux que le formule puisse se calculer et bien il y a une liste donc je veux qu'il puisse faire la formule en code vba pour aller mettre un caractère dans uen cellule si des conditions sont respectées.

Voici en gros ma formule

=SI( ET( B777<>"",OU( NB.SI(X7:X256,"X")>0,NB.SI(AR263:AR462,"X")>0,NB.SI(AP469:AP768,"X")>0)),"X","")

Ce qui se traduit par si la cellule b777 et s'il dénombre au moins un X dans l'une des 3 plages je veux mettre un X dans une cellule AP777. Je veux qu'il puisse faire cela pour les 777 à 788

En code VBA j'ai écrit

For I = 777 To 788

If ((Sheets("Nom de la feuille").Cells(I,2)<>"") And (WorksheetFunction.CountIF(Sheets("Nom de la feuille").Range("X7:X256"),"X")>0) Or (WorksheetFunction.CountIf(Sheets("Nom de la feuille").Range("AR263:AR462"),"X")>0), Or (WorksheetFunction.CountIf(Sheets("Nom de la feuille").Range("AP469:AP768"),"X")>0)))

Then

Sheets("Nom de la feuille").Cells(I,42) = "X"


Else

Sheets("Nom de la feuille").Cells(I,42) = ""

End If



Peut être que ce n.est pas la bonne façon d'écrire le code, la fonction en VBA....


Je m'en remets à vous...


Merci à l'avance


Neo
 

gfortin9

XLDnaute Occasionnel
Re : NB.SI en code VBA...

Allô!

Trois petites coquilles :


....
If ((Sheets("Nom de la feuille").Cells(I,2)<>"") And (WorksheetFunction.CountIF(Sheets("Nom de la feuille").Range("X7:X256"),"X")>0) Or (WorksheetFunction.CountIf(Sheets("Nom de la feuille").Range("AR263:AR462"),"X")>0), Or (WorksheetFunction.CountIf(Sheets("Nom de la feuille").Range("AP469:AP768"),"X")>0))) Then
....

La virgule rouge en trop.
La parenthèse fermante en rouge de trop.
Le then doit être sur la même ligne.

Le reste est beau et il fonctionne; j'ai fait quelques tests.

gf
 

Neo_MTL

XLDnaute Nouveau
Re : NB.SI en code VBA...

Bonjour gfortin9,


Effectivement une fois la virgule et la parenthèse enlevé le code fonctionne. Moi qui n'est pas programmeur je pensais que un ou des noms n'étaient pas correct comme apr exemple le WorksheetFunction.CountIf mais non c'était juste des caractères de trop qi font toute la différence.

Grand Merci

Neo
 

Discussions similaires

Réponses
17
Affichages
945
Réponses
0
Affichages
188
Réponses
22
Affichages
915

Statistiques des forums

Discussions
312 668
Messages
2 090 739
Membres
104 643
dernier inscrit
adriano22