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


vous êtes super!
merci à tous

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
  1. danielc0 Messages postés 2192 Date d'inscription   Statut Membre Dernière intervention   287
     

    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
    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
    2. 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
    3. 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
    4. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
       

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

      0
  2. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     

    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
  3. The_boss_68 Messages postés 959 Date d'inscription   Statut Membre Dernière intervention   182
     

    Bonjour,

    Ben! nous on patauge aussi sans fichier 

    Slts

    0
  4. danielc0 Messages postés 2192 Date d'inscription   Statut Membre Dernière intervention   287
     

    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. 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
  7. Le Pingou Messages postés 12275 Date d'inscription   Statut Contributeur Dernière intervention   1 477
     

    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