Bonjour,

j'ai un soucis avec la macro ci dessous.

En effet, je fais un filtre sur la colonne deux afin d'éliminer des lignes que je ne souhaite pas compter.

Puis je fais un Countif pour connaître le nombre de cellule non vide. Ma boucle permet de récupérer le nombre de cellule nouvelle sur les 14 dernières colonne de ma feuille.

Problème :

En mode débug pas à pas cela fonctionne correctement par contre, lorsque j'active la macro sans fonction débug j'ai le résultat pour toutes les cellules comme ci le filtre ne s'activait pas ou qu'il comptait autant sur les cellules visibles et non visibles.

Quelqu'un peut il m'aider?

Merci d'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
colonne_choisie = num_colonne3("NPT_Analyse", "Code Vie ENG", 2)
 
maxligne2 = max_ligne("NPT_Analyse", 1)
 
 
Sheets("NPT_Analyse").Select
Range("A2").Select
If Sheets("NPT_Analyse").FilterMode Then
    Sheets("NPT_Analyse").ShowAllData
End If
 
    Sheets("NPT_Analyse").Select
    Rows(2).Select
 
    Sheets("NPT_Analyse").Range("$A$2:$AEJ$" & maxligne2).AutoFilter Field:=2, Criteria1:="PN"
 
For compteur1 = 0 To 13
        colonne_test = colonne_choisie + compteur1
        Sheets("NPT_Analyse").Select
 
        Set PlageDeRecherche3 = Sheets("NPT_Analyse").Range(Cells(3, colonne_test), Cells(maxligne2, colonne_test))
        nbresi3 = WorksheetFunction.CountIf(PlageDeRecherche3, "*")
 
 
        If compteur1 = 0 Then
           Sheets("Donnée_KPI3").Cells(2, 3).Value = nbresi3
        ElseIf compteur1 = 1 Then
           Sheets("Donnée_KPI3").Cells(3, 4).Value = nbresi3
        ElseIf compteur1 = 2 Then
           Sheets("Donnée_KPI3").Cells(4, 4).Value = nbresi3
        ElseIf compteur1 = 3 Then
           Sheets("Donnée_KPI3").Cells(5, 4).Value = nbresi3
        ElseIf compteur1 = 4 Then
           Sheets("Donnée_KPI3").Cells(6, 5).Value = nbresi3
        ElseIf compteur1 = 5 Then
           Sheets("Donnée_KPI3").Cells(7, 6).Value = nbresi3
        ElseIf compteur1 = 6 Then
           Sheets("Donnée_KPI3").Cells(8, 6).Value = nbresi3
        ElseIf compteur1 = 7 Then
           Sheets("Donnée_KPI3").Cells(9, 6).Value = nbresi3
        ElseIf compteur1 = 8 Then
           Sheets("Donnée_KPI3").Cells(10, 7).Value = nbresi3
        ElseIf compteur1 = 9 Then
           Sheets("Donnée_KPI3").Cells(11, 7).Value = nbresi3
        ElseIf compteur1 = 10 Then
           Sheets("Donnée_KPI3").Cells(12, 8).Value = nbresi3
        ElseIf compteur1 = 11 Then
           Sheets("Donnée_KPI3").Cells(13, 8).Value = nbresi3
        ElseIf compteur1 = 12 Then
           Sheets("Donnée_KPI3").Cells(14, 9).Value = nbresi3
        ElseIf compteur1 = 13 Then
           Set PlageDeRecherche3 = Sheets("NPT_Analyse").Range(Cells(3, colonne_test), Cells(maxligne2, colonne_test))
               nbresi3 = WorksheetFunction.CountIf(PlageDeRecherche3, "OK")
               Sheets("Donnée_KPI3").Cells(15, 10).Value = nbresi3
        End If
 
 
Next