NB.SI en VBA n'est pas pris en compte dans mes calculs VBA

Résolu
jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention   -  
Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   -

bonjoujour a tous 

je me rends compte que ma formule

NB.SI(($ch$2:$DF$2;BP3) n'est pas pris en compte dans mon "VBA)

J'ai tout essayé avec les "" en mettant = avec les doubles" mais jamais ce n'est pris en compte

je pense qu'il faut me rapprocher de =(concat($ch$2:$df$2)=REPT("0;51)) 51 étant le nombre de cellules mais ou mettre ma cellule BP3? qui est la cellule de comparaison

la je patauge

merci a tous


A voir également:

7 réponses

Résumé de la discussion

Le problème concerne l’utilisation de NB.SI avec une plage horizontale et un critère issu d’une cellule en VBA, et les essais avec des guillemets n’apportent pas le résultat souhaité. Une solution opérationnelle propose de remplacer NB.SI par une macro qui, pour chaque ligne, vérifie deux conditions via CountIf sur CH2:DF2 et CC2:EA2, en utilisant les valeurs des colonnes Z (26) et F (6) comme critères; si les deux résultats sont supérieurs à zéro, on écrit 1, sinon 0. La macro parcourt les lignes à partir de A3 et dépose le résultat dans la colonne H, via une boucle For Each et une structure If Then Else. Cette approche contourne la limitation de NB.SI dans ce contexte et fournit une solution robuste pour générer un indicateur binaire en fonction de deux critères.

Généré automatiquement par IA
sur la base des meilleures réponses
danielc0 Messages postés 1994 Date d'inscription   Statut Membre Dernière intervention   245
 

Bonjour,

J'ai compris que, si les deux formules donnent un résultat >0 alors on mets 1 dans la cellule. Ca ne se produit pas, toutes les cellules sont à 0 :

Sub test()
  Dim C As Range
  For Each C In Range("A3", Cells(Rows.Count, 1).End(xlUp)).Offset(, 7)
    If Application.CountIf([CH2:DF2], Cells(C.Row, 26)) > 0 And _
      Application.CountIf([CC2:EA2], Cells(C.Row, 6)) > 0 Then
      C.Value = 1
    Else
      C.Value = 0
    End If
  Next C
End Sub

1
jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
 

j'ai corrigé CH3 DF3 c'est super

vais l'intégrer avec le reste

encore merci

0
jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
 

par contre petite question 

Row 26 c'est le nombre de cellules de CH2:DF2?

et Row  6 pour CC2:EA?

merci

0
jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
 

J'ai une erreur qui apparait au débogage End If Next C peux tu me dire merci

0
Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 

Merci danielc0, Je prend note du code. C'est super, je n'avais pas compris la demande. Bonne suite. Salutations. Le Pingou

0
Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 

Bonjour,

Merci, toutefois vous dite :

mais je dois l'ajouter en VBA à d'autres fonctions existantes en VBA qui fonctionnent parfaitement 

et dans le fichier il n'y a aucun code VBA..... donc ou faut-il faire l'ajout...?


1
The_boss_68 Messages postés 970 Date d'inscription   Statut Membre Dernière intervention   182
 

Bonjour,

Ben! nous on patauge aussi sans fichier 

Slts

0
danielc0 Messages postés 1994 Date d'inscription   Statut Membre Dernière intervention   245
 

Bonjour à tous,

Outre un fichier, si tu expliquais ce que tu veux faire ? Au lieu d'expliquer ce qui ne fonctionne pas ? Et de poster le code défectueux ?

Daniel


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
 

bsr j'ai fait un tableau réduit de mes calcus

il n'y a pas de code d'erreur, c est simplement ignoré!

Pourquoi?

le calcul serait

NB.SI($CH$2:$DF$2;Z3)a mettre résultat par un 1 en H si resultat des deux sont combinés par une macroNB.SI($CC$3:$EA$3;F3)a mettre résultat par un 1 en H si resultat des deux sont combinés par une macro

 mais je dois l'ajouter en VBA à d'autres fonctions existantes en VBA qui fonctionnent parfaitement 

https://www.cjoint.com/c/OBkuqVvUpXD

merci d'avance pour ton aide


0
Le Pingou Messages postés 12644 Date d'inscription   Statut Contributeur Dernière intervention   1 463
 

Bonjour,

Juste au passage, vous dite : mais je dois l'ajouter en VBA  et par contre vous mettez un fichier sans le VBA ......va être difficile d'en faire plus!


0
jack2125 Messages postés 486 Date d'inscription   Statut Membre Dernière intervention  
 

bonjour

 https://www.cjoint.com/c/OBliJhcTzWD

voila corrigé merci


0