Sub Sauvegarder()
Dim col%, L%, Notes
'on récupere les notes dans l'ordre des colonne de matrice dans l'array
Notes = Array([A2], [A3], [A5], [A7], [A9], [A11], [A13])
With Sheets("Matrice")
'on choppe la ligne en gérant l'erreur en amont in one line en gros on remplace l'erreur par zero
ligne = Application.IfError(Application.Match([b2].Value, .[B:B], 0), 0)
If ligne = 0 Then Exit Sub ' Nom non trouvé (là oui cette ligne est utile)
.Cells(ligne, 3).Resize(, UBound(Notes) + 1) = Notes ' on injecte dans la ligne correspondnate dans matrice
End With
End Sub
Sub Charger()
Dim col%, L%, Notes
With Sheets("Matrice")
'on gere l'erreur de match en amont in one line (en gros on remplace l'erreur par zero)
ligne = Application.IfError(Application.Match(Feuil1.[b2].Value, .[B:B], 0), 0)
If ligne = 0 Then Exit Sub ' Nom non trouvé
'on ne recupere que les exercice 1a 1b 2a 2b
Notes = Application.Index(.[C1:I1000].Value, ligne, Array(3, 4, 6, 7))
'on les place dans F5,F7 et F11,F13 avec un switch de convertion 0.5=1 : 1=2 : 2=3
[F5] = Switch(Notes(1) = 0, 1, Notes(1) = 0.5, 2, Notes(1) = 1, 3)
[F7] = Switch(Notes(2) = 0, 1, Notes(2) = 0.5, 2, Notes(2) = 1, 3)
[F11] = Switch(Notes(3) = 0, 1, Notes(3) = 0.5, 2, Notes(3) = 1, 3)
[F13] = Switch(Notes(4) = 0, 1, Notes(4) = 0.5, 2, Notes(4) = 1, 3)
End With
End Sub
Public Sub Reinitialiser()
'Reinitialise tous les critres
'ici on efface tout simplement
[F3:F13].ClearContents: [b2] = ""
End Sub