NB.SI en code VBA...

  • Initiateur de la discussion Initiateur de la discussion Neo_MTL
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

Neo_MTL

Guest
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
 
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
786
Réponses
3
Affichages
923
Réponses
3
Affichages
881
Réponses
10
Affichages
1 K
Réponses
17
Affichages
2 K
Réponses
0
Affichages
657
Réponses
3
Affichages
430
Réponses
22
Affichages
2 K
Retour