Bonjour lapulpachice, GMB, le forum,
tu peux essayer ceci, ça fonctionne bien chez moi (XL2007)
P.
Sub NettoieEtDerniereCellule() ' Laurent Longre
Dim sht As Worksheet, DCell As Range, Calc As Long, Rien As String
On Error Resume Next
Calc = Application.Calculation
With Application
.Calculation = xlCalculationManual
.StatusBar = "Nettoyage en cours..."
.EnableCancelKey = xlErrorHandler
.ScreenUpdating = False
End With
For Each sht In Worksheets
If sht.UsedRange.Address <> "$A$1" Or Not IsEmpty(sht.[a1]) Then
Set DCell = sht.Cells.Find("*", , , , xlByRows, xlPrevious)(2)
If Not DCell Is Nothing Then
sht.Range(DCell, sht.Cells([A:A].Count, 1)).EntireRow.Clear
Set DCell = Nothing
Set DCell = sht.Cells.Find("*", , , , xlByColumns, xlPrevious)(, 2)
If Not DCell Is Nothing Then _
sht.Range(DCell, sht.[IV1]).EntireColumn.Clear
End If
Rien = sht.UsedRange.Address
End If
Next sht
Application.StatusBar = False
Application.Calculation = Calc
End Sub