Function PeriodeG(TabSht() As String, Optional Lig As Long = 2)
Dim Ind As Integer, Rng As Range
Dim Cpte As Integer, NbG As Integer, NbVide As Integer
' Initialisation des variables
Cpte = 0: NbG = 0: NbVide = 0
' Application.Volatile ' En cas de besoin
' Pour chaque Item du tableau
For Ind = 0 To UBound(TabSht)
' Avec la feuille du nom du tableau
With Sheets(TabSht(Ind))
' Définir la cellule de départ
Set Rng = .Range("C" & Lig)
' Si la colonne de la ligne 1 est une date
Do While IsDate(.Cells(1, Rng.Column))
' Si la cellule contient "G"
If Rng.Value = "G" Then
NbG = NbG + 1
ElseIf Rng.Value <> "" Then
NbG = 0: NbVide = 0
End If
' Sinon si la cellule est vide
If Rng.Value = "" Then
' Si le nombre de G est de 2
If NbG = 2 Then NbVide = NbVide + 1 Else NbG = 0
End If
' Si les 2 conditions sont remplies
If NbG = 2 And NbVide = 3 Then
' On ajoute 1 au compte
Cpte = Cpte + 1
NbG = 0: NbVide = 0
End If
Set Rng = Rng(1, 2)
Loop
End With
Next
PeriodeG = Cpte
End Function