Function PeriodeG2RF2V(TabSht() As String, Optional Lig As Long = 2)
Dim Ind As Integer, Rng As Range
Dim Cpte As Integer, NbG As Integer, NbRF As Integer, NbVide As Integer
' Initialisation des variables
Cpte = 0: NbG = 0: NbRF = 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 <> "RF" Or Rng.Value <> "" Then
NbG = 0: NbRF = 0: NbVide = 0
End If
' Sinon si la cellule est RF
If Rng.Value = "RF" Then
' Si le nombre de G est de 2 on alimente avec RF
If NbG = 2 Then NbRF = NbRF + 1 Else NbG = 0
End If
If Rng.Value = "" Then
If NbG = 2 And NbRF = 2 Then NbVide = NbVide + 1 Else NbG = 0
End If
'Si les 2 conditions sont remplies
If NbG = 2 And NbRF = 2 And NbVide = 2 Then
' On ajoute 1 au compte
Cpte = Cpte + 1
NbG = 0: NbRF = 0: NbVide = 0
End If
Set Rng = Rng(1, 2)
Loop
End With
Next