XL 2019 Fonction CountIF

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Pieerre69

XLDnaute Junior
Bonjour,

J'ai fais une fonction CountIf pour compter le nombre de ligne contenant le texte "V".

VB:
nbvert = Application.WorksheetFunction.CountIf(Sheets("Saisie").Range("A" & Rows.Count).End(xlUp).Row - 2, "=V")

Problème : VB me renvoie l'erreur "Objet requis" lors de l'éxécution du projet.
Pour contexte : j'ai déclarer nbvert as integer et il n'y a qu'une seule ligne.. Je ne sais pas si ces paramètres peuvent jouer, c'est la première fois que j'utilise cette fonction!
Ah et le "-2" me permet de prendre en compte que j'ai deux lignes d'en-têtes. Donc 3 lignes remplies - 2 en-têtes
Merci pour votre aide
 
Bonjour,

La feuille "Saisie" existe-t-elle bien ?

Votre Sheets("Saisie").Range("A" & Rows.Count).End(xlUp) ne renvoie qu'une cellule.
Où est la cellule de départ ?

Un fichier exemple pourrait mieux parler et aider.

Conseils : valoriser une variable objet 'Plage' par exemple avant de l'utiliser. Mettez votre dernière ligne en variable également, servez vous de la fenêtre d'exécution (CTRL+G) pour vérifier le contenu.

Apprenez à vous servir des outils de débogage du menu Affichage (Fenêtre Variables locales', Fenêtre espion, pile des appels etc.)

VB:
Dim Plage As Range

Dim Plage As Range
Dim DerLig As Long
With Sheets("Saisie")
 
   DerLig = Sheets("Saisie").Range("A" & Rows.Count).End(xlUp).Row
   Debug.Print "Derniere ligne : ", DerLig
 
   Set Plage = .Range("A3:A" & DerLig - 2) ' plantera si rien en A3 et dessous
   Debug.Print "Plage : ", Plage.Address

End With

cordialement

[Edit] ben j'avais oublié d'effacer le .Row-2 ! Quel drame !
 
Dernière édition:
Bonjour Pierre, Roblochon,
La ligne :
VB:
Sheets("Saisie").Range("A" & Rows.Count).End(xlUp).Row - 2
ne renvoie pas une plage mais un nombre. La dernière ligne occupée -2 dans la colonne A.
Donc tentez :
Code:
nbvert = Application.CountIf(Sheets("Saisie").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row - 2), "*=V*")
Si la dernière ligne occupée est 10 alors la plage sera A1:A8
Mettez aussi les * car si une cellule commence par = c'est une formule et il ne trouvera pas.
 
Ok je viens de saisir.. C'est vrai que faire un NB.SI sur autre chose qu'une plage c'est compliqué, voir impossible !

Je vais continuer de plancher avant de revenir vers vous si je ne trouve rien.. Merci de m'avoir fait tiqué la dessus en tout cas j'étais bloqué
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
2 K
Retour