Bonjour à tous,
Me revoici avec un problème qui va sûrement paraître simple mais dont la fonction "Recherche" ne m'a pas apporté la solution tellement l'erreur 1004 intervient souvent.
Donc, je suis toujours dans mon long code de Bulletin.
Aujourd'hui, j'ai attaqué l'incrémentation par macro d'une formule matricielle permettant de faire une sorte de moyenne modifiée dont voici la formule originelle pour la première ligne qui se trouve être dans la ligne 7, commençant obligatoirement en C7 mais allant aléatoirement de la ligne C7 à IV7 pour la fin :
Formule qui permet donc d'inscrire aussi le texte "Absent" lorsqu'un élève a été absent pour cette matière.
Donc, j'ai ajouté récemment une fonction de TRI par noms des élèves dans mon classeur. Je me suis rendu compte qu'il gardait les points des anciennes places des élèves et ai donc mis une formule pour à chaque fois renouveler les formules.
Voici mon code :
Voilà. Mais j'obtiens une erreur à la ligne de l'incrémentation de la formule
Selection.FormulaArray = _
"=IF(ISERROR(SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))))/SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(R7C3,,,1,COUNT(R7C1:R7C7))))*10),IF(R[5]C[-3]="""","""",""Absent""),(SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))))/SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:" & _
"OFFSET(R7C3,,,1,COUNT(R7C1:R7C7))))*10))"
Erreur 1004
J'ai obtenu ce code par enregistrement de macro, et je ne sais donc pas si il est vraiment potable étant donné que je n'ai encore jamais travaillé sur ce plan en VBA.
Merci à tous,
Adrien
Me revoici avec un problème qui va sûrement paraître simple mais dont la fonction "Recherche" ne m'a pas apporté la solution tellement l'erreur 1004 intervient souvent.
Donc, je suis toujours dans mon long code de Bulletin.
Aujourd'hui, j'ai attaqué l'incrémentation par macro d'une formule matricielle permettant de faire une sorte de moyenne modifiée dont voici la formule originelle pour la première ligne qui se trouve être dans la ligne 7, commençant obligatoirement en C7 mais allant aléatoirement de la ligne C7 à IV7 pour la fin :
Code:
=SI(ESTERREUR(SOMME(SI(ESTNUM(DECALER(C8;;;1;NB($A$7:$G$7)));DECALER(C8;;;1;NB($A$7:$G$7))))/SOMME(SI(ESTNUM(DECALER(C8;;;1;NB($A$7:$G$7)));DECALER($C$7;;;1;NB($A$7:$G$7))))*10);SI(A13="";"";"Absent");(SOMME(SI(ESTNUM(DECALER(C8;;;1;NB($A$7:$G$7)));DECALER(C8;;;1;NB($A$7:$G$7))))/SOMME(SI(ESTNUM(DECALER(C8;;;1;NB($A$7:$G$7)));DECALER($C$7;;;1;NB($A$7:$G$7))))*10))
Formule qui permet donc d'inscrire aussi le texte "Absent" lorsqu'un élève a été absent pour cette matière.
Donc, j'ai ajouté récemment une fonction de TRI par noms des élèves dans mon classeur. Je me suis rendu compte qu'il gardait les points des anciennes places des élèves et ai donc mis une formule pour à chaque fois renouveler les formules.
Voici mon code :
Code:
Private Sub CommandButton3_Click()
Sheets("Lire - 1").Range("B8:IV50").Select
ActiveWorkbook.Worksheets("Lire - 1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Lire - 1").Sort.SortFields.Add Key:=Range("B8"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Lire - 1").Sort
.SetRange Range("B8:IV50")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Range("IV8").End(xlToLeft).Select
Selection.FormulaArray = _
"=IF(ISERROR(SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))))/SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(R7C3,,,1,COUNT(R7C1:R7C7))))*10),IF(R[5]C[-3]="""","""",""Absent""),(SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))))/SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:" & _
"OFFSET(R7C3,,,1,COUNT(R7C1:R7C7))))*10))"
Selection.AutoFill Destination:=Range(ActiveCell, ActiveCell + 40), Type:=xlFillDefault
End Sub
Voilà. Mais j'obtiens une erreur à la ligne de l'incrémentation de la formule
Selection.FormulaArray = _
"=IF(ISERROR(SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))))/SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(R7C3,,,1,COUNT(R7C1:R7C7))))*10),IF(R[5]C[-3]="""","""",""Absent""),(SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))),OFFSET(RC[-1],,,1,COUNT(R7C1:R7C7))))/SUM(IF(ISNUMBER(OFFSET(RC[-1],,,1,COUNT(R7C1:" & _
"OFFSET(R7C3,,,1,COUNT(R7C1:R7C7))))*10))"
Erreur 1004
J'ai obtenu ce code par enregistrement de macro, et je ne sais donc pas si il est vraiment potable étant donné que je n'ai encore jamais travaillé sur ce plan en VBA.
Merci à tous,
Adrien
Dernière édition: