Sub Worksheet_Activate()
Dim tablo, Lcap%, Ldnb%, Lbac%, Langlais%, i%, Ligne%, Colonne%, Matière
[A3:L1000].ClearContents
Application.ScreenUpdating = False
tablo = Sheets("Datas").[A1].CurrentRegion
Lcap = 2: Ldnb = 2: Lbac = 2: Langlais = 2 ' Init des pointeur d'écriture pour chaque matière
For i = 2 To UBound(tablo)
If tablo(i, 1) = "O" Then ' Si présent
Matière = UCase(Right(Trim(tablo(i, 7)), 3))
Select Case Matière
Case "CAP": Colonne = 1: Lcap = Lcap + 1: Ligne = Lcap
Case "DNB": Colonne = 4: Ldnb = Ldnb + 1: Ligne = Ldnb
Case "BAC": Colonne = 7: Lbac = Lbac + 1: Ligne = Lbac
Case "AIS": Colonne = 10: Langlais = Langlais + 1: Ligne = Langlais
Case Else: Colonne = 0
End Select
If Colonne <> 0 Then
Cells(Ligne, Colonne + 0) = tablo(i, 4)
Cells(Ligne, Colonne + 1) = tablo(i, 5)
Cells(Ligne, Colonne + 2) = tablo(i, 6)
End If
End If
Next i
End Sub