Sub RemplirTabEtat()
Dim TabEtat() As Variant
With Sheets("Etat")
TabEtat = .Range("A4:X27").Value
For i = LBound(TabEtat, 1) To UBound(TabEtat, 1)
Somme = 0
For j = 1 To 24 'pour toutes les colonnes du tableau
Select Case j
Case 2, 3, 4, 5 'formule pour "Phase Creation"
formule = "countifs(Tab_BD[Année],A" & i + 3 & ",Tab_BD[Annexe],ville" & (j - 1) Mod 6 & "_creation,Tab_BD[Phase],""Creation"",Tab_BD[Etat],""archivé"")"
Case 8, 9, 10, 11 'formule pour "Phase Extension"
formule = "countifs(Tab_BD[Année],A" & i + 3 & ",Tab_BD[Annexe],ville" & (j - 1) Mod 6 & "_ext,Tab_BD[Phase],""extension"",Tab_BD[Etat],""archivé"")"
Case 14, 15, 16, 17 'formule pour "Dossier Annule"
formule = "countifs(Tab_BD[Année],A" & i + 3 & ",Tab_BD[Annexe],ville" & (j - 1) Mod 6 & "_annule,Tab_BD[Phase],""annule"",Tab_BD[Etat],""archivé"")"
Case 20, 21, 22, 23 'formule pour "Sieje"
formule = "countifs(Tab_BD[Année],A" & i + 3 & ",Tab_BD[Annexe],""ville" & (j - 1) Mod 6 & """)"
Case 1, 7, 13, 19 'cas où j pointe sur une colonne "Année"
Somme = 0
GoTo suivant
Case Else 'cas où j pointe une colonne "somme"
TabEtat(i, j) = Somme
GoTo suivant
End Select
TabEtat(i, j) = Application.Evaluate(formule)
Somme = Somme + TabEtat(i, j)
suivant:
Next j
Next i
.Range("A4:X27") = TabEtat
End With
End Sub