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?
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.
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.
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
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))}