VBA - CountIf affiche valeur 0

Bonjour,

Celà fais maintenant quelques jours que je bloque sur la fonction CountIf, malgrès plusieurs synthaxe, la valeur retourné reste toujours 0..

Ce que j'aimerais :

image

Retourné le nombre de 1 retrouver en la première cellule de la semaine 13 et la dernière de la semaine 17.

Voici ce que j'ai essayé :

For c = 7 To Sheets("Calendrier").Range("A" & Rows.Count).End(xlUp).Row
With WsR ' Ajoute les données du calendrier au tableau
Set oCell = .Range(Cells(c, 5), Cells(c, 29))
    ligne = .Range("A" & Rows.Count).End(xlUp).Row
  .Range("F" & ligne).Offset(1).Value = Application.CountIf(oCell, "1")
.Range("F" & ligne).Offset(1).Value = Application.CountIf(.Range("A" & c & ":AC" & c), "1")
.Range("F" & ligne).Offset(1).Value = Application.CountIf(.Range(Cells(c, 5), Cells(c, 29)), "1")
.Range("F" & ligne).Offset(1).Value = Application.WorksheetFunction.CountIf(.Range(Cells(c, 5), Cells(c, 29)), "1")
.Range("F" & ligne).Offset(1).Value = WorksheetFunction.CountIf(.Range(Cells(c, 5), Cells(c, 29)), "1")

J'ai également essayer de convertir le 1 en nombre et enlever le " ", mais rien y fait, la valeur retourné est toujours 0..

Est-ce que quelqu'un as déjà eu ou connais la solution à ce problème ?

Merci,

Kilian

Bonjour,

y a t il d'autre données dans ces cellules ? Car s'il n'y a que des "1" alors une somme suffit pour en connaître le nombre...
Moi je suis perdu sans le numéro des lignes et des colonnes sur la photo... Avec vous le fichier ?

@ bientôt

LouReeD

Hello LouReed,

Oui il y a d'autres données, j'ai mis quelques exemples sur le fichier joint.

Le code qui me gêne se trouve dans le module Totaliseur_Abs.

Merci,

Kilian

8calendrier-test.zip (837.35 Ko)

Désolé, chez moi il me manque pas mal de chose pour le fonctionnement de l'application...

Par contre, votre CountIf fait une comparaison avec un 1 entre guillemet, alors que dans le calendrier ce sont des chiffres, avez vous essayé de supprimer les guillemets dans la ligne de code ?

@ bientôt

LouReeD

Oui j'ai déjà essayer d'enlever les guillemets, de changer le format des cellules directement dans le calendrier mais rien n'y fait..

Et ça ne marche également pas avec les autres types d'absences qui eux sont du texte.

Bonjour,

Il me semble que c'est parce que ta formule ne pointe pas vers la bonne feuille que ça ne fonctionne pas. Avec "with WsR", tu utilises la feuille Recap pour faire tes calculs et pas la feuille Calendrier. Il te suffit d'ajouter WsC devant Range("A" & c... etc) et ça devrait fonctionner.

.Range("F" & ligne).Offset(1).Value = Application.CountIf(WsC.Range("A" & c & ":AC" & c), "1")

Hello Shakki,

Effectivement, c'est tout bête.. je pensais l'avoir fait et que ceci me génèrais une erreur..

En l'essayant avec la synthaxe avec la variable oCell ça ne marche pas, mais avec la synthaxe que tu as mis ça fonctionne très bien.

Merci

Kilian

Bonjour, Kilian1906

Merci d'etre passé par la !

@ bientôt

LouReeD

Merci LouReed pour ta contribution

à Bientôt,

Kilian

Rechercher des sujets similaires à "vba countif affiche valeur"