Bonjour,

je dois compter le nombre de ligne correspondant à plusieurs critères
En gros j'ai quatre feuilles et sur la feuille 4 j'ai une colonne qui doit correspondre au nombre de lignes de la feuille 1 qui ont la même 'clé' et d'autres critères + nombre de ligne de la feuille 2, ...
Pour faire ça, j'ai créer une fonction
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
Function CompteAcces(Quoi As Range, Interface As Boolean) As Long
   Dim Ws As Worksheet
   Dim x As Integer
   Dim Compteur As Long
 
   Compteur = 0
   Ws = ThisWorkbook.Worksheets("Feuil1")
   x = 1
   Do Until IsEmpty(Ws.Cells(x, 1).Value)
      If Ws.Cells(x, 1).Value = Quoi.Value Then
         If Interface Then
            If Ws.Cells(x, 12).Value = "INTERF?" Then
               Compteur = Compteur + 1
            End If
         Else
            Compteur = Compteur + 1
         End If
      End If
      x = x + 1
   Loop
 
   Ws = Worksheets("Feuil2")
   x = 1
   Do Until IsEmpty(Ws.Cells(x, 1).Value)
      If Ws.Cells(x, 1).Value = Quoi.Value Then
         If Interface Then
            If Ws.Cells(x, 12).Value = "INTERF?" Then
               Compteur = Compteur + 1
            End If
         Else
            Compteur = Compteur + 1
         End If
      End If
      x = x + 1
   Loop
 
   Ws = Worksheets("Feuil3")
   x = 1
   Do Until IsEmpty(Ws.Cells(x, 1).Value)
      If Ws.Cells(x, 1).Value = Quoi.Value Then
         If Interface Then
            If Ws.Cells(x, 12).Value = "INTERF?" Then
               Compteur = Compteur + 1
            End If
         Else
            Compteur = Compteur + 1
         End If
      End If
      x = x + 1
   Loop
 
CompteAcces = Compteur
 
End Function
Qui m'a l'air de correspondre à ce que je veux, sauf que ça plante directement à
Code : Sélectionner tout - Visualiser dans une fenêtre à part
   Ws = ThisWorkbook.Worksheets("Feuil1")
Ca ne marche pas n'ont plus avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   Ws = ThisWorkbook.Worksheets(1)
   Ws = ThisWorkbook.Worksheets("Mon nom de feuille")
   Ws = ThisWorkbook.Sheets("Feuil1")
mais si j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
   nb = ThisWorkbook.Worksheets.Count
J'ai bien 5 feuilles
Comment est-ce que je dois faire pour référencer la feuille 1 ?
Existe il un moyen d'obtenir l'erreur ?
En mode débogage, il me marque Indice en dehors de la Plage, mais si j'essaye d'utiliser un On Error Resume Next, ça plante pareil, et je n'ai rien dans Err.Number.

Novice en VBA, Excel 97, Win2k