web-dev-qa-db-fra.com

Nombre de cellules VBA dans la colonne contenant la valeur spécifiée

J'ai besoin d'écrire une macro qui recherche une colonne spécifiée et compte toutes les cellules contenant une chaîne spécifiée, telle que "19/12/11" or "Green" associez ensuite ce nombre à une variable,

Quelqu'un a-t-il une idée?

32
BradStevenson

Voulez-vous dire que vous voulez utiliser une formule dans VBA? Quelque chose comme:

Dim iVal As Integer
iVal = Application.WorksheetFunction.COUNTIF(Range("A1:A10"),"Green")

devrait marcher.

57
JMax

Ce n'est pas exactement ce que vous recherchez, mais voici comment j'ai abordé ce problème par le passé.

Vous pouvez entrer une formule comme

=COUNTIF(A1:A10,"Green")

... dans une cellule. Cela comptera le nombre de cellules entre A1 et A10 contenant le texte "vert". Vous pouvez ensuite sélectionner cette valeur de cellule dans une macro VBA et l'affecter à une variable comme d'habitude.

13
Tezzums

une manière;

var = count("find me", Range("A1:A100"))

function count(find as string, lookin as range) As Long
   dim cell As Range
   for each cell in lookin
       if (cell.Value = find) then count = count + 1 '//case sens
   next
end function
2
Alex K.

Pas ce que vous avez demandé mais peut être utile quand même.

Bien sûr, vous pouvez faire la même chose avec les formules matricielles. Il suffit de lire le résultat de la cellule qui contient:

Cell A1="Text to search"
Cells A2:C20=Range to search for

=COUNT(SEARCH(A1;A2:C20;1))

Rappelez-vous que la saisie de formules matricielles nécessite CTRL + SHIFT + ENTRÉE, pas seulement ENTRÉE. Après, cela devrait ressembler à:

{=COUNT(SEARCH(A1;A2:C20;1))}

0
Duarte Botelho