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
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