Remplacer la fonction CountIfs VBA Excel 2003
Résolu
Olivier67
-
Olivier67 -
Olivier67 -
Bonjour,
J'ai fait une petite application qui me permet de compter le nombre de congés de personnel sur l'année.
Pour cela j'ai créé un petit code en VBA sous 2007.
Le problème c'est qu'à mon poste, je n'ai que 2003 et la fonction Countifs est inconnu sous 2003.
Je ne sais pas comment remplacer la fonction suivante:
La fonction a pour but de compter le nombre de C (comme congé) mis dans un tableau semestriel pour un mois donné.
C1 = WorksheetFunction.CountIfs(Semestre1.Range("b" & a + 2 & ":GP" & a + 2), "C", Semestre1.Range("b4:GP4"), "<" & Mois + 1 & "/01/" & Annee)
On peut apparement utiliser sumproduct mais je n'arrive pas à le coder correctement... si quelqu'un peut m'aider.
Merci d'avance
J'ai fait une petite application qui me permet de compter le nombre de congés de personnel sur l'année.
Pour cela j'ai créé un petit code en VBA sous 2007.
Le problème c'est qu'à mon poste, je n'ai que 2003 et la fonction Countifs est inconnu sous 2003.
Je ne sais pas comment remplacer la fonction suivante:
La fonction a pour but de compter le nombre de C (comme congé) mis dans un tableau semestriel pour un mois donné.
C1 = WorksheetFunction.CountIfs(Semestre1.Range("b" & a + 2 & ":GP" & a + 2), "C", Semestre1.Range("b4:GP4"), "<" & Mois + 1 & "/01/" & Annee)
On peut apparement utiliser sumproduct mais je n'arrive pas à le coder correctement... si quelqu'un peut m'aider.
Merci d'avance
A voir également:
- Remplacer la fonction CountIfs VBA Excel 2003
- Fonction si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Remplacer disque dur par ssd - Guide
- Comment calculer la moyenne sur excel - Guide
1 réponse
Bonjour,
Je me suis essayé à l'exercice en 2003, j'avoue que ce n'est pas évident.
Je n'ai pas réussi à utiliser la fonction WorksheetFunction.sumproduct.
Par contre avec la fonction Evaluate aprés plusieurs essais je crois que je suis au résultat. Par contre je n'ai pas pu intégrer Semestre1 dans ma formule.
Comme c'est sans doute une feuille, je suggère de la sélectionner avant de lancer la fonction. Voila donc le résultat :
J'avoue que c'est assez "ésotérique" mais chez moi cela fonctionne.
D'autres avis sont les biens venus.
Bien sur (j'entends d'ici les remarques) je sais bien qu'en faisant des boucles en VBA on peut obtenir le résultat plus facilement mais c'était un chalenge que de répondre exactement au problème posé par notre demandeur...
A+
Cordialement,
Je me suis essayé à l'exercice en 2003, j'avoue que ce n'est pas évident.
Je n'ai pas réussi à utiliser la fonction WorksheetFunction.sumproduct.
Par contre avec la fonction Evaluate aprés plusieurs essais je crois que je suis au résultat. Par contre je n'ai pas pu intégrer Semestre1 dans ma formule.
Comme c'est sans doute une feuille, je suggère de la sélectionner avant de lancer la fonction. Voila donc le résultat :
Semestre1.Select C1 = Evaluate("SumProduct(($b$" & a + 2 & ":$gp$" & a + 2 & " = ""C"")*($b$4:$gp$4 < DATEVALUE(""" & Mois + 1 & " / 1 / " & Annee & """)))")
J'avoue que c'est assez "ésotérique" mais chez moi cela fonctionne.
D'autres avis sont les biens venus.
Bien sur (j'entends d'ici les remarques) je sais bien qu'en faisant des boucles en VBA on peut obtenir le résultat plus facilement mais c'était un chalenge que de répondre exactement au problème posé par notre demandeur...
A+
Cordialement,
Merci encore