NOMBRE VBA

Ce tutoriel va vous montrer comment utiliser la fonction Excel COUNT en VBA

La fonction VBA COUNT est utilisée pour compter le nombre de cellules de votre feuille de calcul qui contiennent des valeurs. Il est accessible à l'aide de la méthode WorksheetFunction dans VBA.

Fonction de feuille de calcul COUNT

L'objet WorksheetFunction peut être utilisé pour appeler la plupart des fonctions Excel disponibles dans la boîte de dialogue Insérer une fonction dans Excel. La fonction COUNT en fait partie.

123 Sous TestCountFunctinoRange("D33") = Application.WorksheetFunction.Count(Range("D1:D32"))Fin du sous-marin

Vous pouvez avoir jusqu'à 30 arguments dans la fonction COUNT. Chacun des arguments doit faire référence à une plage de cellules.

Cet exemple ci-dessous comptera combien de cellules sont remplies avec des valeurs dans les cellules D1 à D9

123 Sous-TestCount()Range("D10") = Application.WorksheetFunction.Count(Range("D1:D9"))Fin du sous-marin

L'exemple ci-dessous comptera le nombre de valeurs dans une plage de la colonne D et dans une plage de la colonne F. Si vous ne tapez pas l'objet Application, il sera supposé.

123 Sous TestCountMultiple()Range("G8") = WorksheetFunction.Count(Range("G2:G7"), Range("H2:H7"))Fin du sous-marin

Affectation d'un résultat de comptage à une variable

Vous souhaiterez peut-être utiliser le résultat de votre formule ailleurs dans le code plutôt que de l'écrire directement dans la plage Excel. Si tel est le cas, vous pouvez affecter le résultat à une variable à utiliser plus tard dans votre code.

1234567 Sous-assignCount()Dim result As Integer'Attribuer la variableresult = WorksheetFunction.Count(Range("H2:H11"))'Afficher le résultatMsgBox "Le nombre de cellules remplies de valeurs est " & résultatFin du sous-marin

COUNT avec un objet Range

Vous pouvez affecter un groupe de cellules à l'objet Range, puis utiliser cet objet Range avec le Feuille de travailFonction objet.

123456789 Sous TestCountRange()Dim rng As Range'attribuer la plage de cellulesDéfinir rng = Range("G2:G7")'utiliser la plage dans la formuleRange("G8") = WorksheetFunction.Count(rng)'libérer l'objet rangeDéfinir rng = RienFin du sous-marin

COUNT objets de plage multiples

De même, vous pouvez compter le nombre de cellules remplies de valeurs dans plusieurs objets de plage.

123456789101112 Sous TestCountMultipleRanges()Dim rngA comme plageDim rngB comme plage'attribuer la plage de cellulesDéfinir rngA = Plage("D2:D10")Définir rngB = Range("E2:E10")'utiliser la plage dans la formuleRange ("E11") = WorksheetFunction.Count(rngA, rngB)'libérer l'objet rangeDéfinir rngA = RienDéfinir rngB = RienFin du sous-marin

Utilisation de COUNTA

Le compte ne comptera que les VALEURS dans les cellules, il ne comptera pas la cellule si la cellule contient du texte. Pour compter les cellules qui sont remplies avec n'importe quel type de données, nous aurions besoin d'utiliser la fonction COUNTA.

123 Sous-TestCountA()Plage("B8) = Application.WorksheetFunction.CountA(Range("B1:B6"))Fin du sous-marin

Dans l'exemple ci-dessous, la fonction COUNTA renverrait un zéro car il n'y a pas de valeurs dans la colonne B, alors qu'elle renverrait un 4 pour la colonne C. Cependant, la fonction COUNTA compterait les cellules contenant du texte et renverrait une valeur de 5 dans la colonne B tout en renvoyant une valeur de 4 dans la colonne C.

Utilisation de COUNTBLANKS

La fonction COUNTBLANKS ne comptera que les cellules vides dans la plage de cellules - c'est-à-dire les cellules qui ne contiennent aucune donnée.

123 Sous TestCountBlank()Range("B8) = Application.WorksheetFunction.CountBlanks(Range("B1:B6"))Fin du sous-marin

Dans l'exemple ci-dessous, la colonne B n'a pas de cellules vides tandis que la colonne C a une cellule vide.

Utilisation de la fonction COUNTIF

Une autre fonction de feuille de calcul qui peut être utilisée est la fonction COUNTIF.

123456 Sous TestCountIf()Range("H14") = WorksheetFunction.CountIf(Range("H2:H10"), ">0")Range("H15") = WorksheetFunction.CountIf(Range("H2:H10"), ">100")Range("H16") = WorksheetFunction.CountIf(Range("H2:H10"), ">1000")Range("H17") = WorksheetFunction.CountIf(Range("H2:H10"), ">10000")Fin du sous-marin

La procédure ci-dessus ne comptera les cellules contenant des valeurs que si les critères correspondent - supérieur à 0, supérieur à 100, supérieur à 1000 et supérieur à 10000. Vous devez mettre les critères entre guillemets pour que la formule fonctionne correctement.

Inconvénients de WorksheetFunction

Lorsque vous utilisez le Feuille de travailFonction pour compter les valeurs d'une plage dans votre feuille de calcul, une valeur statique est renvoyée, pas une formule flexible. Cela signifie que lorsque vos chiffres dans Excel changent, la valeur renvoyée par le Feuille de travailFonction ne changera pas.

Dans l'exemple ci-dessus, la procédure TestCount a compté les cellules de la colonne H où une valeur est présente. Comme vous pouvez le voir dans la barre de formule, ce résultat est un chiffre et non une formule.

Si l'une des valeurs change donc dans la plage (H2:H12), les résultats dans H14 seront NE PAS monnaie.

Au lieu d'utiliser le WorksheetFunction.Count, vous pouvez utiliser VBA pour appliquer une fonction de comptage à une cellule en utilisant le Formule ou FormuleR1C1 méthodes.

Utilisation de la méthode de la formule

La méthode de formule vous permet de pointer spécifiquement vers une plage de cellules, par exemple : H2:H12 comme indiqué ci-dessous.

123 Sous TestCountFormulePlage("H14").Formule = "=Compte(H2:H12)"Fin du sous-marin

Utilisation de la méthode FormulaR1C1

La méthode FromulaR1C1 est plus flexible dans la mesure où elle ne vous limite pas à une plage définie de cellules. L'exemple ci-dessous nous donnera la même réponse que celui ci-dessus.

123 Sous TestCountFormula()Plage("H14").Formule = "=Compte(R[-9]C:R[-1]C)"Fin du sous-marin

Cependant, pour rendre la formule plus flexible, nous pourrions modifier le code pour qu'il ressemble à ceci :

123 Sous TestCountFormula()ActiveCell.FormulaR1C1 = "=Count(R[-11]C:R[-1]C)"Fin du sous-marin

Où que vous soyez dans votre feuille de calcul, la formule comptera alors les valeurs dans les 12 cellules directement au-dessus et placera la réponse dans votre ActiveCell. La plage à l'intérieur de la fonction COUNT doit être référencée à l'aide de la syntaxe Row (R) et Column (C).

Ces deux méthodes vous permettent d'utiliser des formules Excel dynamiques dans VBA.

Il y aura désormais une formule dans H14 au lieu d'une valeur.

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave