COUNTA d'une plage de cellule sélectionnée

Bonjour,

Je voudrais pouvoir utiliser la fonction COUNTA d'Excel afin de compter le nombre de cellules non vides de la plage de cellule sélectionnée. Mon problème est que cela ne fonctionne pas et ma macro m'indique qu'il n'y a qu'un seul élément. Par ailleurs, le MsgBox n'est là que pour m'indiquer si le CountA fonctionne, il n'est pas censé faire partie de la macro.

Merci par avance de votre aide.

col = ActiveCell.Column
l = ActiveCell.Row

nbCells = Application.WorksheetFunction.CountA("l : A26") 

If nbCells > 0 Then
MsgBox "La plage contient " & nbCells & "élément(s)."
Else
MsgBox "La plage est vide."
End If

'On délimite l'action de la fonction
'On retire 1 à nbcells car on ne compte pas la premire cellule
For i = l To l + nbCells - 1
For j = i + 1 To l + nbCells - 1

If Cells(i, col) = Cells(j, col) Then
'Colorer la cellule en jaune fluo
Cells(j, col).Interior.Color = RGB(255, 255, 0)

End If

Next j
Next i

End Sub

Bonjour,

Que cherchez-vous à faire vraiment ? Car j'ai l'impression que le counta sert à compter des cellules sélectionnées durant l'exécution du code. Or, la sélection de cellules dans un code est à proscrire, sauf dans des cas rares...

Voici sinon une fonction pour compter les valeurs :

Function NBVALEURS(paramarray plage()) as long
for i = lbound(plage) to ubound(plage)
    NBVALEURS = NBVALEURS + plage(i).cells.count - application.countblank(plage(i))
next i
end function

qu'on peut utiliser comme ceci :

nbcells = NBVALEURS(range("A1:A26"), range("C1:C26"))

Cdlt,

Bonjour 3GB, christophe44,

Pour définir une plage, il faut une adresse valide de début et une de fin.

Dans:

nbCells = Application.WorksheetFunction.CountA("l : A26")

à la place de l'adresse de début on trouve la variable "l" (L minuscule) qui ne contient que le N° de ligne . De plus le nom de cette variable étant inclus dans les guillemets , il est considéré comme un caractère .

La plage nécessaire à la fonction Counta est une plage au sens VBA donc un range.

Ce qui donnerait après modifications:

nbCells = Application.WorksheetFunction.CountA(Range("A" & l & ":A26"))

A+

Merci beaucoup ça fonctionne !

Rechercher des sujets similaires à "counta plage selectionnee"