If Not Intersect(Target, br(1, 2).EntireColumn) Is Nothing Then
Application.ScreenUpdating = False
memsel = Selection.Address
memtarget = Target.Address
Application.Undo 'annule la modification
memlist = ListObjects(1).DataBodyRange.Columns(1).Resize(, 2) 'au moins 2 éléments
Application.Undo 'rétablit la modification
Range(memsel).Select
Set Target = Range(memtarget)
Application.ScreenUpdating = True
[MOYENNES1].EntireRow(0).Clear 'efface la ligne précédente
=SI(LIGNES(A$11:A11)=1;0;SI(B12="";"";DECALER(A12;-1;)+1))
'---
With w.ListObjects(1).DataBodyRange
If r <> "" And IsError(Application.Match(r, .Columns(2), 0)) Then
w.ListObjects(1).Resize .Offset(-1).Resize(.Rows.Count + 2) 'redimensionne
.Cells(.Rows.Count + 1, 2) = r 'entrée de la valeur
End If
End With
=SI(B12="";"";LIGNE()-LIGNE(A$12))
'---suppression des lignes des noms effacés---
On Error Resume Next
br.Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Dis-moi Job, est-ce moi qui commets l’erreur de calcul ?
'---décale les moyennes---
If br.Rows(br.Rows.Count).Row + 1 = [MOYENNES1].Row Then
Application.CutCopyMode = 0 'annule le mode Couper/Copier
[MOYENNES1].EntireRow.Insert
[MOYENNES1].EntireRow(0).Clear 'efface la ligne précédente
End If
'---suppression des lignes des noms effacés---
If Application.CountBlank(br.Columns(2)) Then
For i = br.Rows.Count To 2 Step -1
If br(i, 2) = "" Then br(i, 2).EntireRow.Delete
Next
End If
le fchier MOY(9) est celui que j'ai utlisé