Bonjour, j'utilise une macro pour calculer automatiquement les moyennes en fonction de l'origine. Je souhaiterai rajouter dans cette ligne générée automatiquement une formule "nbval" pour me calculer automatiquement le nombre d'élèves et que cette ligne soit aussi automatiquement coller dans un tableau de synthèse sur une autre feuille... Est-ce possible ?
PS: je n'y connais pas grand chose en macro pouvez-vous m'aider ????
Sub MoyenneO()
Dim I As Long, dercol As Byte, plage As Range
Application.ScreenUpdating = False
With Sheets("origine")
For I = .Range("E65536").End(xlUp).Row To 4 Step -1
If .Cells(I, 5) Like "Moyennes *" Then .Cells(I, 5).EntireRow.Delete 'suppression des lignes de moyennes
Next
.Rows("4:65536").Sort Key1:=.Range("E4"), Order1:=xlAscending, _
Key2:=.Range("A4"), Order2:=xlAscending, Header:=xlNo 'tri du tableau
dercol = .Range("IV3").End(xlToLeft).Column 'dernière colonne à remplir
For I = .Range("E65536").End(xlUp).Row + 1 To 5 Step -1
If .Cells(I - 1, 5) <> .Cells(I, 5) Then
.Rows(I).Insert
.Rows(I).Borders(xlInsideVertical).LineStyle = xlNone 'supprime les bordures
.Cells(I, 1).Resize(, dercol).Interior.ColorIndex = 36 'colore la ligne en jaune
.Cells(I, 5) = "Moyennes " & .Cells(I - 1, 5)
If Not plage Is Nothing Then _
plage.FormulaR1C1 = "=AVERAGE(R[" & I - plage.Row + 1 & "]C:R[-1]C)"
Set plage = .Range(.Cells(I, 7), .Cells(I, dercol))
End If
Next
plage.FormulaR1C1 = "=AVERAGE(R[" & 4 - plage.Row & "]C:R[-1]C)" 'il y a encore une ligne de moyennes à remplir...
End With
End Sub
PS: je n'y connais pas grand chose en macro pouvez-vous m'aider ????
Sub MoyenneO()
Dim I As Long, dercol As Byte, plage As Range
Application.ScreenUpdating = False
With Sheets("origine")
For I = .Range("E65536").End(xlUp).Row To 4 Step -1
If .Cells(I, 5) Like "Moyennes *" Then .Cells(I, 5).EntireRow.Delete 'suppression des lignes de moyennes
Next
.Rows("4:65536").Sort Key1:=.Range("E4"), Order1:=xlAscending, _
Key2:=.Range("A4"), Order2:=xlAscending, Header:=xlNo 'tri du tableau
dercol = .Range("IV3").End(xlToLeft).Column 'dernière colonne à remplir
For I = .Range("E65536").End(xlUp).Row + 1 To 5 Step -1
If .Cells(I - 1, 5) <> .Cells(I, 5) Then
.Rows(I).Insert
.Rows(I).Borders(xlInsideVertical).LineStyle = xlNone 'supprime les bordures
.Cells(I, 1).Resize(, dercol).Interior.ColorIndex = 36 'colore la ligne en jaune
.Cells(I, 5) = "Moyennes " & .Cells(I - 1, 5)
If Not plage Is Nothing Then _
plage.FormulaR1C1 = "=AVERAGE(R[" & I - plage.Row + 1 & "]C:R[-1]C)"
Set plage = .Range(.Cells(I, 7), .Cells(I, dercol))
End If
Next
plage.FormulaR1C1 = "=AVERAGE(R[" & 4 - plage.Row & "]C:R[-1]C)" 'il y a encore une ligne de moyennes à remplir...
End With
End Sub
Dernière édition: