j'ai modifié le code par celui ci :
Private Sub CommandButton1_Click()
Dim i As Long
Application.ScreenUpdating = False
With Sheets("controle banc 2w Aout 2012")
Lignes = TextBox1.Value
For i = 2 To .Range("B" & Rows.Count).End(xlUp)
If .Range("B" & i) <> "" Then
.Rows(i + 1 & ":" & .Range("B" & i + Lignes).Row).Delete
End If
'i = i + 3
Next
End With
End Sub
Cependant c'est encore très très long