Compter cellules pleines

Résolu
Bonjour !

Je recherche une macro me permettant de compter les cellules pleines sur une seule colonne ; mais je n'en trouve pas sur internet. En fait, pour détailler un peu, j'ai une liste en colonne A (avec un en-tête), et je voudrais compter le nombre de cellules pleines en excluant l'en-tête. Je ne pense pas que ce soit très compliqué, mais en étant débutante, je n'ai aucune idée de comment faire...

Ou bien y a-t-il une fonction Excel qui permet de faire ça ?

Merci d'avance pour vos réponses !

2 réponses

  1. Modérateur
    Bonjour, il y a la fonction NBVAL() qui fait ça.
    Equivalent en VBA : WorksheetFunction.CountA()
    1. Contributeur
      Bonjour,

      En formule
      =NBVAL(A:A)-1

      ou en macro
      résultat = Application.WorksheetFunction.CountA(Range("A:A")) - 1
      1. Avec la macro, un message d'erreur apparaît en séléctionnant "A:A".

        Erreur de compilation:
        Instruction incorrecte à l'extérieur d'une procédure.

        En revanche, la formule marche bien ;) !

        Entre temps, j'ai continué de cherché en attendant une réponse et j'ai miraculeusement trouvé une formule (comme quoi quand on cherche sans espérer trouver, c'est bien à ce moment qu'on trouve la solution) :

        Sub CountNonBlanks()
        'Updateby20140310
        Dim rng As Range
        Dim WorkRng As Range
        Dim total As Long
        On Error Resume Next
        xTitleId = "KutoolsforExcel"
        Set WorkRng = Application.Selection
        Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
        For Each rng In WorkRng
            If Not IsEmpty(rng.Value) Then
                total = total + 1
            End If
        Next
        MsgBox "There are " & total & " not blank cells in this range."
        End Sub
        https://www.extendoffice.com/documents/excel/1559-excel-count-empty-or-nonblank-cells.html

        Mais la formule est bien plus simple à retenir pour réutiliser à l'avenir, merci beaucoup !
      2. Contributeur
        Bonjour,

        Erreur de compilation:
        Instruction incorrecte à l'extérieur d'une procédure.

        Comme une formule est associée à une cellule, une instruction VBA doit être intégrée à une procédure, tu ne peux pas exécuter une ligne toute seule !