Voila mon soucis, j'ai un code qui doit venir compter dans une feuille toute les cellules de même date ,en fonction des mois et de l'année (exemple : j'ai 12 lignes pour 10/2010, j'en ai 20 pour 01/2010).

Le soucis (parce que yen a un) je compte seulement les lignes d'une feuille. Moi j'aimerais compter la somme des lignes de trois feuilles.

exemple : le 10/2011 feuil1 = 12 lignes ; feuil2 = 4 lignes ; feuil3 = 2 lignes

donc j'importe dans ma feuille de résultat qui est ici "BOARDMASTER" la somme, en face de la ligne date concerné (10/2010) la somme de ces trois feuil.

Le 10/2011 BOARDMASTER = 18 lignes


J'ai commencé un code qui fonctionne pour le moment,
En gros le but est de compter le nombre d'action en court dans plusieurs feuille.


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
59
60
61
62
Function comptercellules(intAnnee As Integer, bytMois As Byte) As Long
    Dim LaDerniere As Long, i As Long
 'And Range("A" & i).Interior.ColorIndex = 4
    With Worksheets("Feuill1")
        LaDerniere = .Range("A" & .Rows.Count).End(xlUp).Row
 
        For i = 3 To LaDerniere
            If Month(.Range("A" & i).Value) = bytMois And Year(Range("A" & i).Value) = intAnnee Then
                comptercellules = comptercellules + 1
            End If
        Next i
    End With
 
 
 
End Function
 
Private Sub Worksheet_Change(ByVal Target As Range)
 
    'Dim Cel As Range
    'With Worksheets("CUR SEMAINE")
    'For Each Cel In .Range("A1:A" & .Range("A65536").End(xlUp).Row)
    'If Year(Cel) >= 2009 And Year(Cel) <= 2017 Then Cel.Interior.ColorIndex = 4
    'Next Cel
    'End With
 
 
 If Target.Column = 1 Then
 
    Dim Plage As Range, Cellules As Range
    Dim bytMois As Byte
    Dim intAnnee As Integer
 
    With Worksheets("BOARDMASTER")
 
    intAnnee = 2009
    Do Until intAnnee = 2017
        bytMois = 1
        Do Until bytMois = 13
            For Each Cellules In .Range("b5:b" & .Range("b" & .Rows.Count).End(xlUp).Row)
                If Month(Cellules) = bytMois And Year(Cellules) = intAnnee Then
                    If Plage Is Nothing Then
                        Set Plage = Cellules(1, 5)
                    Else
                        Set Plage = Union(Plage, Cellules(1, 5))
                    End If
                End If
            Next Cellules
 
            If Not Plage Is Nothing Then
                Plage.Value = comptercellules(intAnnee, bytMois)
                Set Plage = Nothing
            End If
            bytMois = bytMois + 1
        Loop
         intAnnee = intAnnee + 1
        Loop
    End With
 
End If
 
End Sub