Bonjour, je reviens pour une question qui est toujours en rapport avec le sujet.
J'ai aussi apporté des ajouts à un autre code, je ne peux pas faire de CountIf avec colonne lorsque je lui ai mis une union de plusieurs plages. Y a-t-il un moyen afin de réutiliser cette fonction avec cette plage de cellules. Dans ce cas on a M=2, tout foncitonne mais ça plante à NombreCkb
Dim N As Byte, e As Byte, i As Byte, j As Byte, v As Byte, a As Byte, M As Byte
Dim NombreCkb As Byte, colonne As Range, acc As Object, ma As Object, lgn As Integer, lgn2 As Integer
Set acc = Sheets("Accueil")
N = acc.Range("A1").Value
v = acc.Range("A2").Value
M = acc.Range("A3").Value
If M = 0 Then 'On est en Page d'accueil
If N = 1 And v = 0 Then
'Set lgn = acc.Cells(Rows.Count, 2).End(xlUp).Row
Set colonne = acc.Range("D13:D40")
ElseIf N = 1 And v = 1 Then
Set colonne = acc.Range("G13:G40")
ElseIf N = 1 And v = 2 Then
Set colonne = acc.Range("J13:J40")
ElseIf N = 2 Then
Set colonne = acc.Range("M10:M46")
ElseIf N = 3 Then
Set colonne = acc.Range("P10:P46")
End If
ElseIf M = 1 Then 'On est en Page 1
Set ma = Sheets(1)
lgn = ma.Cells(Rows.Count, 1).End(xlUp).Row 'Défini la dernière ligne de la plage cliquée
Set colonne = Union(ma.Range(ma.Cells(3, 7), ma.Cells(lgn, 7)), ma.Range(ma.Cells(3, 14), ma.Cells(lgn, 14)), ma.Range(ma.Cells(3, 21), ma.Cells(lgn, 21))) 'La plage correspond aux checkbox des 3 Pompes
ElseIf M = 2 Then 'On est en Page 2
Set ma = Sheets(2)
lgn = ma.Cells(Rows.Count, 1).End(xlUp).Row 'Défini la dernière ligne de la plage cliquée
lgn2 = ma.Cells(Rows.Count, 9).End(xlUp).Row 'Pour les entretiens
Set colonne = Union(ma.Range(ma.Cells(3, 7), ma.Cells(lgn, 7)), ma.Range(ma.Cells(3, 14), ma.Cells(lgn2, 14)))
ElseIf M = 3 Then 'On est en page 3
Set ma = Sheets(3)
lgn = ma.Cells(Rows.Count, 1).End(xlUp).Row 'Défini la dernière ligne de la plage cliquée
lgn2 = ma.Cells(Rows.Count, 9).End(xlUp).Row 'Pour les entretiens
Set colonne = Union(ma.Range(ma.Cells(3, 7), ma.Cells(lgn, 7)), ma.Range(ma.Cells(3, 14), ma.Cells(lgn2, 14)))
End If
NombreCkb = Application.WorksheetFunction.CountIf(colonne, "TRUE")