Compter le nombre de réponses Ok et Nok dans un tableau

anizzz Messages postés 22 Statut Membre -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

J'ai un tableau ( semaine ) contenant les résultats d'audit par zone d'entreprise appelée GAP. J'aimerais en extraire un tableau affichant le nombre d'audits OK ( marqué par O ) et d'audits NOK ( marqué par X ) par GAP.

Ma grille varie toute les semaines. Voici ma macro :



Sub Analyser()

Dim i, j, inj7ok, inj7tot

i = 6
j = 4
inj7ok = 0
inj7tot = 0

For i = 6 To 40

Do While (j < 40)

If ActiveWorkbook.Sheets("semaine").Cells(i, j).Value Then

If ActiveWorkbook.Sheets("semaine").Cells(i, j + 5).Value Then
inj7ok = inj7ok + 1

End If

inj7tot = inj7tot + 1

End If

j = j + 9

Loop

Next i

End Sub



Lorsque je lance la macro ça m'affiche l'erreur " incompatibilité de type " ... Je ne comprends pas d'où ça peut venir.

Mon fichier excel est là : https://www.cjoint.com/?0KolqRsTBnW
Merci d'avance ! :)

3 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Nul besoin du fichier, pour l'instant.
    Que veux tu tester à ces deux lignes :
    If ActiveWorkbook.Sheets("semaine").Cells(i, j).Value Then

    et
    If ActiveWorkbook.Sheets("semaine").Cells(i, j + 5).Value Then 

    0
  2. anizzz Messages postés 22 Statut Membre
     
    If ActiveWorkbook.Sheets("semaine").Cells(i, j + 5).Value Then
    inj7ok = inj7ok + 1
    End If

    Ici je voudrais que ça me compte le nombre de fois où c'est écrit OK pour le GAP injection 7


    If ActiveWorkbook.Sheets("semaine").Cells(i, j).Value Then
    inj7tot = inj7tot + 1
    End If

    Et ici je voudrais que ça me compte le nombre de fois où la case où l'on remplie le résultat de l'audit est remplie.

    Je ne sais pas si je suis assez claire...
    0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Tu es claire dans tes explications, mais pas dans ton code.
    Je traduis pour toi :
    If ActiveWorkbook.Sheets("semaine").Cells(i, j).Value Then 
    signifie :
    Si la valeur de ma cellule alors...

    Or tu me dis vouloir :
    Si la valeur de ma cellule est "OK"

    Donc :
    If ActiveWorkbook.Sheets("semaine").Cells(i, j).Value = "OK" Then 

    Tu comprends mieux ton erreur maintenant?

    🎼 Cordialement,
    Franck 🎶
    0