Autres Mister Vba ou Mystère Vba...

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.
 

frangy

XLDnaute Occasionnel
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.
 

Calvus

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

  • Exemple 23.07.19.xlsm
    74.5 KB · Affichages: 5

Jocelyn

XLDnaute Barbatruc
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:

Statistiques des forums

Discussions
311 711
Messages
2 081 786
Membres
101 817
dernier inscrit
carvajal