WorksheetFunction.CountIfs : erreur 1004

Résolu
TonyLucky - 9 janv. 2024 à 23:07
 TonyLucky - 10 janv. 2024 à 08:57

Bonjour à tous,

J'ai un souci pour intégrer une variable dans une formule Nb.si.ens. Comme je souhaite récupérer le résultat du calcul directement dans une variable, j'utilise worksheetfunction.

Voici la formule :

Application.WorksheetFunction.CountIfs(Sheets("Catalogue").Range("P10:P" & FinListe), "=0", Sheets("Catalogue").Range("O10:O3000"), ">=" & ValRep1)

C'est la variable "FinListe" qui génère l'erreur. Elle est pourtant correctement alimentée et renvoie bien le numéro de ligne. J'ai essayé avec Range(cells,...), mais cela provoque toujours l'erreur.

Si je remplace "FinListe" par une valeur, le calcul se fait normalement :

Application.WorksheetFunction.CountIfs(Sheets("Catalogue").Range("P10:P3000"), "=0", Sheets("Catalogue").Range("O10:O3000"), ">=" & ValRep1)

J'ai vraiment besoin d'utiliser cette variable FinListe (ou d'autres d'ailleurs pour les colonnes), j'aimerais trouver la solution.

Merci par avance de vos suggestions.

Bonne soirée
Windows / Firefox 121.0

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
10 janv. 2024 à 08:32

Bonjour,

Si les pages ont la meme longueur c'est ok.

Mais en cherchant, j'ai vu des exemples avec des longueurs de plage differentes.J'ai fait des tests et ben marche pas.Donc....

0

Merci pour votre réponse et, en la lisant, je me suis traité d'abruti ! Je savais pourtant que les plages devaient avoir la même longueur. En mettant ma variable FinListe dans la seconde condition, cela fonctionne parfaitement.

Application.WorksheetFunction.CountIfs(Sheets("Catalogue").Range("P10:P" & FinListe), "=0", Sheets("Catalogue").Range("O10:O" & FinListe), ">=" & ValRep1)

Comme bien souvent, quand on a trop le nez dedans, on ne voit plus rien...

Encore merci et bonne journée

0