Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion RYJITS
  • Date de début Date de début

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 !

R

RYJITS

Guest
bonjour,

j'ai un problème avec le code ci dessous avec la fonction countfits.
si j'y intégré un seul argument le code fonctionne mais avec deux argument j'ai un code erreurs 1004. j'ai essayez plusieurs façons mais rien à faire.

merci d'avance de votre aide

Sub code_Absence()
'
' code_Absence Macro
'

Dim TotalAbsents As Integer
Dim colSem As Integer
Dim colSem2 As Integer

Range("H7").Select
ligne = 3


Pool = Range("D😀").Address
Semaine = Selection.Value
colSem = ActiveCell.Column
col2Sem = ActiveCell.Column + 7
code = Sheets("Code absence").Cells(ligne, 1).Value

Do While code <> ""

Actions_Absence = Sheets("Code absence").Cells(ligne, 3).Value
code = Sheets("Code absence").Cells(ligne, 1).Value
PSB = Application.WorksheetFunction.CountIfs(Range(Columns(colSem), Columns(col2Sem)), code, Range(Columns(5)), "=BSMR")

If Actions_Absence = "Absent" And PSB > 0 Then

TotalAbsents = TotalAbsents + PSB
ligne = ligne + 1

Else

ligne = ligne + 1

End If

Loop
'
End Sub
 
Re : CountIfs

Bonjour,

WorksheetFunction.CountIf, comme la fonction NB.SI (et pour cause), n'accepte qu'une plage de recherche et un critère.

Précisez donc ce que vous cherchez à déterminer avec:
PSB = Application.WorksheetFunction.CountIfs(Range(Columns(colSem), Columns(col2Sem)), code, Range(Columns(5)), "=BSMR")

avec ces précisions un intervenant pourra sans doute mieux vous orienter : scinder en deux, autre fonction ...

A+
 
Re : CountIfs

Bonjour,
Comme vous l'avez remarque j'utilise bien countifs et pas countif et donc la fonction devrais accepter plusieur critères. Je cherche a comptabiliser le nombre de code inscrit dans la plage entre deux colonne défini par les variable colsem et colsem2 si la valeur BSMR dans la colonne 5 est vrais.
Merci encore
 
Re : CountIfs

Re,

Jusqu'à XL 2003 Countifs n'existait pas d'où ma méprise.

avec XL 2003, PSB = Application.WorksheetFunction.CountIf(Range(Columns(5)), "=BSMR") est en erreur et on doit modifier en PSB = Application.WorksheetFunction.CountIf(Range("E:E"), "=BSMR") pour que ça fonctionne.


Essayer peut être (je suppose, je ne peux pas tester), d'apporter cette modif à votre code ?

PSB = Application.WorksheetFunction.CountIfs(Range(Colum ns(colSem), Columns(col2Sem)), code, Range("E:E"), "=BSMR")

Bonne suite
 
Re : CountIfs

bonjour,
s'est la première chose que j'ai essayé même problème il n'accepte pas ma deuxième condition

les essai que j'ai fait

Range("E:E"), "=BSMR")
Range("E:E"), "BSMR")
"E:E", "=BSMR")
Range(Columns(5), Columns(5))

merci de consacrer du temps pour mon problème je pense que je vais essayer avec sommeprod ca devrais fonctionnée mais j'aimerais bien comprendre mon erreur
 
Re : CountIfs

bonjour,

la je sais plus ni avec countifs ni avec SumProduct

j'ai vraiment besoin d'un sérieux coup de main

merci encore

Sub comptage()

Dim TotalAbsents As Integer
Dim colSem As Integer
Dim colSem2 As Integer
Dim Ligne As Integer
Dim Actions_Absence As String
Dim code As String
Dim Plage As Range
Dim Plage2 As Range

Range("J7").Select
Ligne = 3

colSem = ActiveCell.Column
col2Sem = ActiveCell.Column + 7
code = Sheets("Code absence").Cells(Ligne, 1).Value
Set Plage = Range(Columns(colSem), Columns(col2Sem))
Set Plage2 = Range("E:E")

Do While code <> ""

Actions_Absence = Sheets("Code absence").Cells(Ligne, 3).Value
code = Sheets("Code absence").Cells(Ligne, 1).Value
'PSB = Application.WorksheetFunction.CountIfs(Plage, code, Plage2, "=BSMR")
PSB = Application.WorksheetFunction.SumProduct((Plage2 = "BSMR") * (Plage = " & code & "))


If Actions_Absence = "Absent" And PSB > 0 Then

TotalAbsents = TotalAbsents + PSB
Ligne = Ligne + 1

Else

Ligne = Ligne + 1

End If

Loop
'
End Sub
 
Re : CountIfs

re,

Plage est une plage de 7 colonnes, peut_être que countifs, comme sumproduct, ne peut pas fonctionner avec plusieurs plages dont une multicolonne

essayer peut-être de traiter en plusieurs fois du style:

Code:
For i= colSem to colSem2
    PSB = PSB +  Application.WorksheetFunction.CountIfs(Range(Columns(i)), code, Range(Columns(5)), "=BSMR")
Next

Bonne suite
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
837
Réponses
1
Affichages
305
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
692
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…