Autres Mister Vba ou Mystère Vba...

  • Initiateur de la discussion Initiateur de la discussion Calvus
  • 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 !

Calvus

XLDnaute Barbatruc
Bonsoir le forum,

Une petite énigme en cette canicule estivale..

Avec le même code et la même formule, j'obtiens 2 résultats différents..

Formule :
VB:
=NB.SI(C6:C362;"<>""")-NB.SI(P6:P362;"n")-NB.SI(R6:R362;"x")

J'obtiens 116

Code :
Code:
Sub Non_Traité()
Dim i As Integer, n As Integer

For i = 6 To Cells(Rows.Count, 5).End(xlUp).Row
    If Cells(i, 18) <> "x" And Cells(i, 16) <> "N" Then n = n + 1
  'ce qui correspond à R:R     correspond à P:P
Next i
MsgBox n
End Sub

J'obtiens 119...

Quel est le schisme d'après vous ?..
Bizarre non ?

Bonne soirée.
 
Bonjour,



Les 2 traitements ne peuvent pas être comparés.

La formule calcule le nombre de cellule vides dans la plage de la colonne C, lui soustrait le nombre de cellule qui contiennent « n » dans la plage de la colonne P puis lui soustrait le nombre de cellule qui contiennent « x » dans la plage de la colonne R.
Exemple : si les colonnes P et R sont entièrement remplies, respectivement avec n et x, le résultat donnera 357 – 357 -357 = -357

Dans la procédure, on comptabilise le nombre de lignes de ces mêmes plages où les cellules sont vides dans la colonne P et la colonne R.
Avec le même exemple : si les colonnes P et R sont entièrement remplies, respectivement avec n et x, le résultat donnera 0.

Cordialement.
 
Bonsoir Frangy, Yaloo, Staple 🙂, Jocelyn 🙂

@Jocelyn en effet ta formule donne le même résultat.
Pourquoi l'autre donne un résultat différent ?

Il y a peut-être aussi que dans ta formule tu prends la colonne C alors que dans ton code tu utilises la colonne E.
Pas d'incidence, les colonnes sont remplies de la même manière.

Oui, c'est bizarre, que l'accro que tu es, laisse son fichier exemple au chaud sur son disque dur alors qu'il pourrait prendre l'air sur le forum
Etait ce vraiment nécessaire dans ce cas..?

@frangy, je comprends ce que tu veux dire, mais ce n'est pas probant dans cet exemple.

Quoi qu'il en soit, merci de vos réponses et voici le fichier exemple.

La formule est en F369, celle de Jocelyn en F370, le code dans le seul module que j'ai laissé.

Bonne soirée
A+
 

Pièces jointes

re,

en testant sur ton fichier tu as trois lignes qui ont "n" en colonne P et x en colonne R ce qui fait que tu as enlevé 6 avec les nb.si() au lieu de seulement 3 d'ou 116 pour 119 😉

Bonne soirée 🙂

EDIT pour vérifier que tu as bien 3 ligne avec les "n" en colonne P et x en colonne R

VB:
=sommeprod((P6:P362="n")*(R6:R362="x"))
 
Dernière édition:
- 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
Retour