Bonjour,
J'ai un problème lors de l'exécution de ce code qui m'affiche "Erreur d'exécution 13: Incompatibilité de type".
Ce code exécute les calculs au début de la base de données et arrête l'exécution pour la suite des enregistrements.
Merci de votre aide
Option Explicit 'Obligation de déclarer les variables
Const DebEtu_Cell = "D16"
'===================================================
'Calcul de moyenne pour les étudiants
'===================================================
Public Sub Calcul_Moyenne_Rachat_Etudes_S5S6()
Dim MC As Range
Dim Formule As String
Dim Plage As Range
'Se positionner sur le premier étudiant
Set MC = Range(DebEtu_Cell)
'Itérer vers le bas tant que la cellule est non vide
Do While Not IsEmpty(MC.Value)
'Validation des notes après session rachat CL semestre 5
Set Plage = Range("E16:E" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!E16="""",PV_Etudes_S5S6!E16,Relevé_Rachat_Etudes_S5S6!E16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("F16:F" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!F16="""",PV_Etudes_S5S6!F16,Relevé_Rachat_Etudes_S5S6!F16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("G16:G" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!G16="""",PV_Etudes_S5S6!G16,Relevé_Rachat_Etudes_S5S6!G16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("H16:H" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!H16="""",PV_Etudes_S5S6!H16,Relevé_Rachat_Etudes_S5S6!H16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("I16:I" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!I16="""",PV_Etudes_S5S6!I16,Relevé_Rachat_Etudes_S5S6!I16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("J16:J" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!J16="""",PV_Etudes_S5S6!J16,Relevé_Rachat_Etudes_S5S6!J16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Validation des notes après session rachat C1 semestre 5
Set Plage = Range("N16:N" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!K16="""",PV_Etudes_S5S6!N16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!K16="""",PV_Etudes_S5S6!N16<>""""),PV_Etudes_S5S6!N16,Relevé_Rachat_Etudes_S5S6!K16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("O16:O" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!L16="""",PV_Etudes_S5S6!O16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!L16="""",PV_Etudes_S5S6!O16<>""""),PV_Etudes_S5S6!O16,Relevé_Rachat_Etudes_S5S6!L16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("P16" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!M16="""",PV_Etudes_S5S6!P16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!M16="""",PV_Etudes_S5S6!P16<>""""),PV_Etudes_S5S6!P16,Relevé_Rachat_Etudes_S5S6!M16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("Q16:Q" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!N16="""",PV_Etudes_S5S6!Q16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!N16="""",PV_Etudes_S5S6!Q16<>""""),PV_Etudes_S5S6!Q16,Relevé_Rachat_Etudes_S5S6!N16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("R16:R" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!O16="""",PV_Etudes_S5S6!R16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!O16="""",PV_Etudes_S5S6!R16<>""""),PV_Etudes_S5S6!R16,Relevé_Rachat_Etudes_S5S6!O16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("S16:S" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!P16="""",PV_Etudes_S5S6!S16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!P16="""",PV_Etudes_S5S6!S16<>""""),PV_Etudes_S5S6!S16,Relevé_Rachat_Etudes_S5S6!P16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("T16:T" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!Q16="""",PV_Etudes_S5S6!T16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!Q16="""",PV_Etudes_S5S6!T16<>""""),PV_Etudes_S5S6!T16,Relevé_Rachat_Etudes_S5S6!Q16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("U16:U" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!R16="""",PV_Etudes_S5S6!U16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!R16="""",PV_Etudes_S5S6!U16<>""""),PV_Etudes_S5S6!U16,Relevé_Rachat_Etudes_S5S6!R16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("V16:V" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!S16="""",PV_Etudes_S5S6!V16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!S16="""",PV_Etudes_S5S6!V16<>""""),PV_Etudes_S5S6!V16,Relevé_Rachat_Etudes_S5S6!S16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Validation des notes après session rachat CL semestre 6
Set Plage = Range("Z16:Z" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!T16="""",PV_Etudes_S5S6!Z16,Relevé_Rachat_Etudes_S5S6!T16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AA16:AA" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!U16="""",PV_Etudes_S5S6!AA16,Relevé_Rachat_Etudes_S5S6!U16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AB16:AB" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!V16="""",PV_Etudes_S5S6!AB16,Relevé_Rachat_Etudes_S5S6!V16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Validation des notes après session rachat C1 semestre 6
Set Plage = Range("AF16:AF" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!W16="""",PV_Etudes_S5S6!AF16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!W16="""",PV_Etudes_S5S6!AF16<>""""),PV_Etudes_S5S6!AF16,Relevé_Rachat_Etudes_S5S6!W16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AG16:AG" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!X16="""",PV_Etudes_S5S6!AG16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!X16="""",PV_Etudes_S5S6!AG16<>""""),PV_Etudes_S5S6!AG16,Relevé_Rachat_Etudes_S5S6!X16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AH16:AH" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!Y16="""",PV_Etudes_S5S6!AH16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!Y16="""",PV_Etudes_S5S6!AH16<>""""),PV_Etudes_S5S6!AH16,Relevé_Rachat_Etudes_S5S6!Y16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AI16:AI" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!Z16="""",PV_Etudes_S5S6!AI16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!Z16="""",PV_Etudes_S5S6!AI16<>""""),PV_Etudes_S5S6!AI16,Relevé_Rachat_Etudes_S5S6!Z16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AJ16:AJ" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AA16="""",PV_Etudes_S5S6!AJ16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AA16="""",PV_Etudes_S5S6!AJ16<>""""),PV_Etudes_S5S6!AJ16,Relevé_Rachat_Etudes_S5S6!AA16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AK16:AK" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AB16="""",PV_Etudes_S5S6!AK16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AB16="""",PV_Etudes_S5S6!AK16<>""""),PV_Etudes_S5S6!AK16,Relevé_Rachat_Etudes_S5S6!AB16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AL16:AL" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AC16="""",PV_Etudes_S5S6!AL16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AC16="""",PV_Etudes_S5S6!AL16<>""""),PV_Etudes_S5S6!AL16,Relevé_Rachat_Etudes_S5S6!AC16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AM16:AM" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AD16="""",PV_Etudes_S5S6!AM16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AD16="""",PV_Etudes_S5S6!AM16<>""""),PV_Etudes_S5S6!AM16,Relevé_Rachat_Etudes_S5S6!AD16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AN16:AN" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AE16="""",PV_Etudes_S5S6!AN16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AE16="""",PV_Etudes_S5S6!AN16<>""""),PV_Etudes_S5S6!AN16,Relevé_Rachat_Etudes_S5S6!AE16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la décision du semestre 5
If MC.Offset(0, 1).Value = "Déf." Or MC.Offset(0, 2).Value = "Déf." Or MC.Offset(0, 3).Value = "Déf." Or MC.Offset(0, 4).Value = "Déf." Or MC.Offset(0, 5).Value = "Déf." Or MC.Offset(0, 6).Value = "Déf." Then
MC.Offset(0, 9).Value = "NV"
ElseIf MC.Offset(0, 1).Value >= 10 And MC.Offset(0, 2).Value >= 10 And MC.Offset(0, 3).Value >= 10 And MC.Offset(0, 4).Value >= 10 And MC.Offset(0, 5).Value >= 10 And MC.Offset(0, 6).Value >= 10 Then
MC.Offset(0, 9).Value = "V"
Else: MC.Offset(0, 9).Value = "NV"
End If
If MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 13).Value = "" And MC.Offset(0, 14).Value = "" And MC.Offset(0, 15).Value = "" And MC.Offset(0, 16).Value >= 10 And MC.Offset(0, 17).Value >= 10 And MC.Offset(0, 18).Value >= 10 Then
MC.Offset(0, 21).Value = "V"
ElseIf MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 16).Value = "" And MC.Offset(0, 17).Value = "" And MC.Offset(0, 18).Value = "" And MC.Offset(0, 13).Value >= 10 And MC.Offset(0, 14).Value >= 10 And MC.Offset(0, 15).Value >= 10 Then
MC.Offset(0, 21).Value = "V"
ElseIf MC.Offset(0, 13).Value = "" And MC.Offset(0, 14).Value = "" And MC.Offset(0, 15).Value = "" And MC.Offset(0, 16).Value = "" And MC.Offset(0, 17).Value = "" And MC.Offset(0, 18).Value = "" And MC.Offset(0, 10).Value >= 10 And MC.Offset(0, 11).Value >= 10 And MC.Offset(0, 12).Value >= 10 Then
MC.Offset(0, 21).Value = "V"
Else: MC.Offset(0, 21).Value = "NV"
End If
'Calcul de la décision du semestre 6
If MC.Offset(0, 22).Value = "Déf." Or MC.Offset(0, 23).Value = "Déf." Or MC.Offset(0, 24).Value = "Déf." Then
MC.Offset(0, 27).Value = "NV"
ElseIf MC.Offset(0, 22).Value >= 10 And MC.Offset(0, 23).Value >= 10 And MC.Offset(0, 24).Value >= 10 Then
MC.Offset(0, 27).Value = "V"
Else: MC.Offset(0, 27).Value = "NV"
End If
If MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 31).Value = "" And MC.Offset(0, 32).Value = "" And MC.Offset(0, 33).Value = "" And MC.Offset(0, 34).Value >= 10 And MC.Offset(0, 35).Value >= 10 And MC.Offset(0, 36).Value >= 10 Then
MC.Offset(0, 39).Value = "V"
ElseIf MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 34).Value = "" And MC.Offset(0, 35).Value = "" And MC.Offset(0, 36).Value = "" And MC.Offset(0, 31).Value >= 10 And MC.Offset(0, 32).Value >= 10 And MC.Offset(0, 33).Value >= 10 Then
MC.Offset(0, 39).Value = "V"
ElseIf MC.Offset(0, 31).Value = "" And MC.Offset(0, 32).Value = "" And MC.Offset(0, 33).Value = "" And MC.Offset(0, 34).Value = "" And MC.Offset(0, 35).Value = "" And MC.Offset(0, 36).Value = "" And MC.Offset(0, 28).Value >= 10 And MC.Offset(0, 29).Value >= 10 And MC.Offset(0, 30).Value >= 10 Then
MC.Offset(0, 39).Value = "V"
Else: MC.Offset(0, 39).Value = "NV"
End If
'Calcul de la décision finale
If MC.Offset(0, 9) = "V" And MC.Offset(0, 21) = "V" And MC.Offset(0, 27) = "V" And MC.Offset(0, 39) = "V" Then
MC.Offset(0, 40) = "Admis"
Else
MC.Offset(0, 40) = "Refusé"
End If
'Calcul du total de C1 du semestre 5
If MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 13).Value = "" And MC.Offset(0, 14).Value = "" And MC.Offset(0, 15).Value = "" Then
MC.Offset(0, 19).Value = MC.Offset(0, 16).Value + MC.Offset(0, 17).Value + MC.Offset(0, 18).Value
ElseIf MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 16).Value = "" And MC.Offset(0, 17).Value = "" And MC.Offset(0, 18).Value = "" Then
MC.Offset(0, 19).Value = MC.Offset(0, 13).Value + MC.Offset(0, 14).Value + MC.Offset(0, 15).Value
Else: MC.Offset(0, 19).Value = MC.Offset(0, 10).Value + MC.Offset(0, 11).Value + MC.Offset(0, 12).Value
End If
'Calcul du total de C1 du semestre 6
If MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 31).Value = "" And MC.Offset(0, 32).Value = "" And MC.Offset(0, 33).Value = "" Then
MC.Offset(0, 37).Value = MC.Offset(0, 34).Value + MC.Offset(0, 35).Value + MC.Offset(0, 36).Value
ElseIf MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 34).Value = "" And MC.Offset(0, 35).Value = "" And MC.Offset(0, 36).Value = "" Then
MC.Offset(0, 37).Value = MC.Offset(0, 31).Value + MC.Offset(0, 32).Value + MC.Offset(0, 33).Value
Else: MC.Offset(0, 37).Value = MC.Offset(0, 28).Value + MC.Offset(0, 29).Value + MC.Offset(0, 30).Value
End If
'Calcul de la moyenne de CL du semestre 5
Set Plage = Range("K16:K" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(OR(E16=""Déf."",F16=""Déf."",G16=""Déf."", H16=""Déf."", I16=""Déf."", J16=""Déf.""),0,sum(E16:J16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("L16:L" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=K16/6" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la moyenne de CL du semestre 6
Set Plage = Range("AC16:AC" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(OR(Z16=""Déf."",AA16=""Déf."",AB16=""Déf.""),0,sum(Z16:AB16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AD16:AD" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=AC16/3" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la moyenne de C1 du semestre 5
Set Plage = Range("X16:X" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=W16/3" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la moyenne de C1 du semestre 6
Set Plage = Range("AP16:AP" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=AO16/3" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Se position sur la cellule du dessous
Set MC = MC.Offset(1, 0)
Loop
End Sub
J'ai un problème lors de l'exécution de ce code qui m'affiche "Erreur d'exécution 13: Incompatibilité de type".
Ce code exécute les calculs au début de la base de données et arrête l'exécution pour la suite des enregistrements.
Merci de votre aide
Option Explicit 'Obligation de déclarer les variables
Const DebEtu_Cell = "D16"
'===================================================
'Calcul de moyenne pour les étudiants
'===================================================
Public Sub Calcul_Moyenne_Rachat_Etudes_S5S6()
Dim MC As Range
Dim Formule As String
Dim Plage As Range
'Se positionner sur le premier étudiant
Set MC = Range(DebEtu_Cell)
'Itérer vers le bas tant que la cellule est non vide
Do While Not IsEmpty(MC.Value)
'Validation des notes après session rachat CL semestre 5
Set Plage = Range("E16:E" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!E16="""",PV_Etudes_S5S6!E16,Relevé_Rachat_Etudes_S5S6!E16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("F16:F" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!F16="""",PV_Etudes_S5S6!F16,Relevé_Rachat_Etudes_S5S6!F16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("G16:G" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!G16="""",PV_Etudes_S5S6!G16,Relevé_Rachat_Etudes_S5S6!G16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("H16:H" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!H16="""",PV_Etudes_S5S6!H16,Relevé_Rachat_Etudes_S5S6!H16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("I16:I" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!I16="""",PV_Etudes_S5S6!I16,Relevé_Rachat_Etudes_S5S6!I16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("J16:J" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!J16="""",PV_Etudes_S5S6!J16,Relevé_Rachat_Etudes_S5S6!J16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Validation des notes après session rachat C1 semestre 5
Set Plage = Range("N16:N" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!K16="""",PV_Etudes_S5S6!N16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!K16="""",PV_Etudes_S5S6!N16<>""""),PV_Etudes_S5S6!N16,Relevé_Rachat_Etudes_S5S6!K16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("O16:O" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!L16="""",PV_Etudes_S5S6!O16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!L16="""",PV_Etudes_S5S6!O16<>""""),PV_Etudes_S5S6!O16,Relevé_Rachat_Etudes_S5S6!L16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("P16" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!M16="""",PV_Etudes_S5S6!P16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!M16="""",PV_Etudes_S5S6!P16<>""""),PV_Etudes_S5S6!P16,Relevé_Rachat_Etudes_S5S6!M16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("Q16:Q" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!N16="""",PV_Etudes_S5S6!Q16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!N16="""",PV_Etudes_S5S6!Q16<>""""),PV_Etudes_S5S6!Q16,Relevé_Rachat_Etudes_S5S6!N16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("R16:R" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!O16="""",PV_Etudes_S5S6!R16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!O16="""",PV_Etudes_S5S6!R16<>""""),PV_Etudes_S5S6!R16,Relevé_Rachat_Etudes_S5S6!O16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("S16:S" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!P16="""",PV_Etudes_S5S6!S16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!P16="""",PV_Etudes_S5S6!S16<>""""),PV_Etudes_S5S6!S16,Relevé_Rachat_Etudes_S5S6!P16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("T16:T" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!Q16="""",PV_Etudes_S5S6!T16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!Q16="""",PV_Etudes_S5S6!T16<>""""),PV_Etudes_S5S6!T16,Relevé_Rachat_Etudes_S5S6!Q16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("U16:U" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!R16="""",PV_Etudes_S5S6!U16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!R16="""",PV_Etudes_S5S6!U16<>""""),PV_Etudes_S5S6!U16,Relevé_Rachat_Etudes_S5S6!R16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("V16:V" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!S16="""",PV_Etudes_S5S6!V16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!S16="""",PV_Etudes_S5S6!V16<>""""),PV_Etudes_S5S6!V16,Relevé_Rachat_Etudes_S5S6!S16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Validation des notes après session rachat CL semestre 6
Set Plage = Range("Z16:Z" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!T16="""",PV_Etudes_S5S6!Z16,Relevé_Rachat_Etudes_S5S6!T16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AA16:AA" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!U16="""",PV_Etudes_S5S6!AA16,Relevé_Rachat_Etudes_S5S6!U16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AB16:AB" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(Relevé_Rachat_Etudes_S5S6!V16="""",PV_Etudes_S5S6!AB16,Relevé_Rachat_Etudes_S5S6!V16)" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Validation des notes après session rachat C1 semestre 6
Set Plage = Range("AF16:AF" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!W16="""",PV_Etudes_S5S6!AF16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!W16="""",PV_Etudes_S5S6!AF16<>""""),PV_Etudes_S5S6!AF16,Relevé_Rachat_Etudes_S5S6!W16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AG16:AG" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!X16="""",PV_Etudes_S5S6!AG16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!X16="""",PV_Etudes_S5S6!AG16<>""""),PV_Etudes_S5S6!AG16,Relevé_Rachat_Etudes_S5S6!X16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AH16:AH" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!Y16="""",PV_Etudes_S5S6!AH16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!Y16="""",PV_Etudes_S5S6!AH16<>""""),PV_Etudes_S5S6!AH16,Relevé_Rachat_Etudes_S5S6!Y16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AI16:AI" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!Z16="""",PV_Etudes_S5S6!AI16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!Z16="""",PV_Etudes_S5S6!AI16<>""""),PV_Etudes_S5S6!AI16,Relevé_Rachat_Etudes_S5S6!Z16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AJ16:AJ" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AA16="""",PV_Etudes_S5S6!AJ16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AA16="""",PV_Etudes_S5S6!AJ16<>""""),PV_Etudes_S5S6!AJ16,Relevé_Rachat_Etudes_S5S6!AA16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AK16:AK" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AB16="""",PV_Etudes_S5S6!AK16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AB16="""",PV_Etudes_S5S6!AK16<>""""),PV_Etudes_S5S6!AK16,Relevé_Rachat_Etudes_S5S6!AB16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AL16:AL" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AC16="""",PV_Etudes_S5S6!AL16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AC16="""",PV_Etudes_S5S6!AL16<>""""),PV_Etudes_S5S6!AL16,Relevé_Rachat_Etudes_S5S6!AC16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AM16:AM" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AD16="""",PV_Etudes_S5S6!AM16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AD16="""",PV_Etudes_S5S6!AM16<>""""),PV_Etudes_S5S6!AM16,Relevé_Rachat_Etudes_S5S6!AD16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AN16:AN" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(AND(Relevé_Rachat_Etudes_S5S6!AE16="""",PV_Etudes_S5S6!AN16=""""),"""",IF(AND(Relevé_Rachat_Etudes_S5S6!AE16="""",PV_Etudes_S5S6!AN16<>""""),PV_Etudes_S5S6!AN16,Relevé_Rachat_Etudes_S5S6!AE16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la décision du semestre 5
If MC.Offset(0, 1).Value = "Déf." Or MC.Offset(0, 2).Value = "Déf." Or MC.Offset(0, 3).Value = "Déf." Or MC.Offset(0, 4).Value = "Déf." Or MC.Offset(0, 5).Value = "Déf." Or MC.Offset(0, 6).Value = "Déf." Then
MC.Offset(0, 9).Value = "NV"
ElseIf MC.Offset(0, 1).Value >= 10 And MC.Offset(0, 2).Value >= 10 And MC.Offset(0, 3).Value >= 10 And MC.Offset(0, 4).Value >= 10 And MC.Offset(0, 5).Value >= 10 And MC.Offset(0, 6).Value >= 10 Then
MC.Offset(0, 9).Value = "V"
Else: MC.Offset(0, 9).Value = "NV"
End If
If MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 13).Value = "" And MC.Offset(0, 14).Value = "" And MC.Offset(0, 15).Value = "" And MC.Offset(0, 16).Value >= 10 And MC.Offset(0, 17).Value >= 10 And MC.Offset(0, 18).Value >= 10 Then
MC.Offset(0, 21).Value = "V"
ElseIf MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 16).Value = "" And MC.Offset(0, 17).Value = "" And MC.Offset(0, 18).Value = "" And MC.Offset(0, 13).Value >= 10 And MC.Offset(0, 14).Value >= 10 And MC.Offset(0, 15).Value >= 10 Then
MC.Offset(0, 21).Value = "V"
ElseIf MC.Offset(0, 13).Value = "" And MC.Offset(0, 14).Value = "" And MC.Offset(0, 15).Value = "" And MC.Offset(0, 16).Value = "" And MC.Offset(0, 17).Value = "" And MC.Offset(0, 18).Value = "" And MC.Offset(0, 10).Value >= 10 And MC.Offset(0, 11).Value >= 10 And MC.Offset(0, 12).Value >= 10 Then
MC.Offset(0, 21).Value = "V"
Else: MC.Offset(0, 21).Value = "NV"
End If
'Calcul de la décision du semestre 6
If MC.Offset(0, 22).Value = "Déf." Or MC.Offset(0, 23).Value = "Déf." Or MC.Offset(0, 24).Value = "Déf." Then
MC.Offset(0, 27).Value = "NV"
ElseIf MC.Offset(0, 22).Value >= 10 And MC.Offset(0, 23).Value >= 10 And MC.Offset(0, 24).Value >= 10 Then
MC.Offset(0, 27).Value = "V"
Else: MC.Offset(0, 27).Value = "NV"
End If
If MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 31).Value = "" And MC.Offset(0, 32).Value = "" And MC.Offset(0, 33).Value = "" And MC.Offset(0, 34).Value >= 10 And MC.Offset(0, 35).Value >= 10 And MC.Offset(0, 36).Value >= 10 Then
MC.Offset(0, 39).Value = "V"
ElseIf MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 34).Value = "" And MC.Offset(0, 35).Value = "" And MC.Offset(0, 36).Value = "" And MC.Offset(0, 31).Value >= 10 And MC.Offset(0, 32).Value >= 10 And MC.Offset(0, 33).Value >= 10 Then
MC.Offset(0, 39).Value = "V"
ElseIf MC.Offset(0, 31).Value = "" And MC.Offset(0, 32).Value = "" And MC.Offset(0, 33).Value = "" And MC.Offset(0, 34).Value = "" And MC.Offset(0, 35).Value = "" And MC.Offset(0, 36).Value = "" And MC.Offset(0, 28).Value >= 10 And MC.Offset(0, 29).Value >= 10 And MC.Offset(0, 30).Value >= 10 Then
MC.Offset(0, 39).Value = "V"
Else: MC.Offset(0, 39).Value = "NV"
End If
'Calcul de la décision finale
If MC.Offset(0, 9) = "V" And MC.Offset(0, 21) = "V" And MC.Offset(0, 27) = "V" And MC.Offset(0, 39) = "V" Then
MC.Offset(0, 40) = "Admis"
Else
MC.Offset(0, 40) = "Refusé"
End If
'Calcul du total de C1 du semestre 5
If MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 13).Value = "" And MC.Offset(0, 14).Value = "" And MC.Offset(0, 15).Value = "" Then
MC.Offset(0, 19).Value = MC.Offset(0, 16).Value + MC.Offset(0, 17).Value + MC.Offset(0, 18).Value
ElseIf MC.Offset(0, 10).Value = "" And MC.Offset(0, 11).Value = "" And MC.Offset(0, 12).Value = "" And MC.Offset(0, 16).Value = "" And MC.Offset(0, 17).Value = "" And MC.Offset(0, 18).Value = "" Then
MC.Offset(0, 19).Value = MC.Offset(0, 13).Value + MC.Offset(0, 14).Value + MC.Offset(0, 15).Value
Else: MC.Offset(0, 19).Value = MC.Offset(0, 10).Value + MC.Offset(0, 11).Value + MC.Offset(0, 12).Value
End If
'Calcul du total de C1 du semestre 6
If MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 31).Value = "" And MC.Offset(0, 32).Value = "" And MC.Offset(0, 33).Value = "" Then
MC.Offset(0, 37).Value = MC.Offset(0, 34).Value + MC.Offset(0, 35).Value + MC.Offset(0, 36).Value
ElseIf MC.Offset(0, 28).Value = "" And MC.Offset(0, 29).Value = "" And MC.Offset(0, 30).Value = "" And MC.Offset(0, 34).Value = "" And MC.Offset(0, 35).Value = "" And MC.Offset(0, 36).Value = "" Then
MC.Offset(0, 37).Value = MC.Offset(0, 31).Value + MC.Offset(0, 32).Value + MC.Offset(0, 33).Value
Else: MC.Offset(0, 37).Value = MC.Offset(0, 28).Value + MC.Offset(0, 29).Value + MC.Offset(0, 30).Value
End If
'Calcul de la moyenne de CL du semestre 5
Set Plage = Range("K16:K" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(OR(E16=""Déf."",F16=""Déf."",G16=""Déf."", H16=""Déf."", I16=""Déf."", J16=""Déf.""),0,sum(E16:J16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("L16:L" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=K16/6" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la moyenne de CL du semestre 6
Set Plage = Range("AC16:AC" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=IF(OR(Z16=""Déf."",AA16=""Déf."",AB16=""Déf.""),0,sum(Z16:AB16))" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
Set Plage = Range("AD16:AD" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=AC16/3" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la moyenne de C1 du semestre 5
Set Plage = Range("X16:X" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=W16/3" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Calcul de la moyenne de C1 du semestre 6
Set Plage = Range("AP16:AP" & Range("c1048576").End(xlUp).Row) ' On définit la plage à impacter
Formule = "=AO16/3" ' Transcription de la formule "française" au format international (perso, je préfère)
Plage.Formula = Formule ' Application de la formule sur la plage définie (équivaut à sélectionner la plage en Excel et à valider la formule par CTRL+ENTER
' Eventuellement, si tu veux figer les calculs par un copier/coller spécial valeurs
Plage.Copy
Plage.PasteSpecial xlPasteValues
Application.CutCopyMode = False
'Se position sur la cellule du dessous
Set MC = MC.Offset(1, 0)
Loop
End Sub