Partage
  • Partager sur Facebook
  • Partager sur Twitter

Formule Excel

Compter un nombre de lignes

    23 juillet 2021 à 17:10:17

    Bonjour,

    J'ai un soucis pour compter un nombre de ligne dans Excel. Je ne sais pas si les formules suffises ou si il faut passer par du VBA. (Je connais pas la programmation VBA donc je préfère utiliser le plus possible les formules excel).

    Voici mon problème :

    J'ai deux colonnes (B et C) qui ont des cellules soit vides, soit qui contiennent des chiffres / nombres.

    Je souhaite afficher dans une cellule (Par exemple A1) le nombre de lignes qui contiennent une valeurs soit en B soit en C. Mais si la même ligne contient à la fois une valeur en B et en C il faut que ça compte 1 et non 2.

    Voir exemple ci-dessous :

    J'ai 6 lignes avec une valeurs au moins en B et en C

    Merci par avance pour votre aide !

    • Partager sur Facebook
    • Partager sur Twitter
      24 juillet 2021 à 8:59:34

      Bonjour,

      Déplacement vers un forum plus approprié

      Le sujet est déplacé de la section Discussions Software vers la section Autres langages (VBA, Ruby,...)

      • Partager sur Facebook
      • Partager sur Twitter

      Pas d'aide concernant le code par MP, le forum est là pour ça :) (en plus je n'y connais rien en C)

        24 juillet 2021 à 17:08:18

        La formule ESTVIDE ne gère qu'une cellule et pas une plage de cellules.

        J'ai vu ça : https://www.excel-downloads.com/threads/estvide-plage-de-cellules.9560/ avec un SI et NBVAL. Mais NBVAL fait une lecture séquentielle. Même si ce que tu veux faire est assez simple, comme il n'existerait pas de formule Excel native, tu peux en créer une en VBA. C'est pas super compliqué.

        Sinon, peut-être que ta conception est mauvaise.

        Essaye ceci, je ne peux pas tester, je suis ou pauvre ou pas un connard qui crack les logiciels payants :

        FUNCTION MA_SOMME(plageCellules as Range)
          
          DIM cumul as Integer
          DIM cellule as Range
          cumul = 0
          
          FOR EACH cellule in plageCellules
            cumul = cumul + cellule.value
          NEXT
        
          MA_SOMME = cumul
        
        END FUNCTION

        Une fois la macro faite, tu la testes dans A1. Tu tapes =MA_SOMME( puis tu sélectionnes à la souris de B2 à C10 et tu fermes la parenthèses. Si tout va bien, tu obtiendras 19

        Pour ta fonction, tu peux te baser sur https://docs.microsoft.com/fr-fr/office/vba/api/excel.range(object)

        -
        Edité par CristianoRolando 27 juillet 2021 à 3:44:57

        • Partager sur Facebook
        • Partager sur Twitter
          26 juillet 2021 à 18:04:48

          @CristianoRolando on ne cherche pas à calculer la somme des cellules (sinon =SOMME(b1:c10 suffirait ^^ )

          A mettre dans un module VBA, pour l'appeler ensuite dans une cellule =NBLNV(B2:C10) (NBLNV: NomBre de Lignes Non Vides)

          Function NBLNV(plage As Range)
              Dim nb As Integer
              Dim ligne As Range, cell As Range
              
              nb = 0
              For Each ligne In plage.Rows
                  For Each cell In ligne.Cells
                      If Not IsEmpty(cell) Then
                          nb = nb + 1
                          Exit For
                      End If
                  Next cell
              Next ligne
              NBLNV = nb
          End Function
          



          • Partager sur Facebook
          • Partager sur Twitter
            27 juillet 2021 à 3:39:51

            C'était un exemple. Je voulais qu'il ponde l'algo lui-même et ne pas lui mâcher le travail.
            • Partager sur Facebook
            • Partager sur Twitter

            Formule Excel

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            • Editeur
            • Markdown