Re,
J’ai placé mon code dans un module et non pas dans le code d’une feuille.
La seule feuille mentionnée dans mon code est ma Feuil2, celle qui correspond dans ton fichier à la feuille ‘Masse’. Donc en modifiant la seule ligne concernée – comme ci-dessous – ça doit fonctionner.
‘Option Explicit
Sub dd()
Dim i As Integer, DerLig As Integer
Application.ScreenUpdating = False
With Sheets("Masse")
.Range("A2:B" & Rows.Count).ClearContents
For i = 4 To 22 Step 2
DerLig = .Range("A" & Rows.Count).End(xlUp).Row
Range(Cells(6, i), Cells(30, i + 1)).Copy .Range("A" & DerLig + 1)
Next i
.Activate
End With
Range("A1:B" & Rows.Count).Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes
DerLig = Range("A" & Rows.Count).End(xlUp).Row
For i = DerLig To 2 Step -1
If Range("B" & i) = 0 Or Range("B" & i) = "" Then Rows(i).Delete
If Range("A" & i) = Range("A" & i - 1) Then
Range("B" & i - 1) = Range("B" & i - 1) + Range("B" & i)
Rows(i).Delete
End If
Next i
End Sub
En fait, je travaille depuis la feuille active (celle sur laquelle se trouve le bouton) sur une autre feuille (With Sheets ........), autre feuille que j'active au bout d'un moment par .activate. Suite à cette activation, je continue à travailler sur cette autre feuille (après End With).
Dans toute la partie entre With et End With, les instructions sans point concernent la feuille active (celle avec le bouton) alors que les insctructions avec un point devant concernent la feuille nommée après With Sheets ........
Cordialement.