Sub Inverse()
'se lance par Ctrl+A
Dim P As Range, dest As Range, ncol%, t, rest(), i&, col%, j%
Set P = ActiveSheet.[J10].CurrentRegion 'à adapter
Set dest = Sheets("inverse").[J10] 'à adapter
ncol = P.Columns.Count
t = P.Resize(P.Rows.Count + 1) 'au moins 2 éléments
ReDim rest(1 To P.Rows.Count, 1 To ncol)
For i = 1 To UBound(rest)
For col = ncol To 1 Step -1
If Val(t(i, col)) <> 0 Or col = 1 Then Exit For
Next col
For j = 1 To col
rest(i, col + 1 - j) = t(i, j) 'copie la valeur
Next j, i
Application.ScreenUpdating = False
With dest
.CurrentRegion.ClearContents 'RAZ
.Resize(UBound(rest), ncol) = rest
With .Parent.UsedRange: End With 'actualisation des barres de défilement
.Parent.Activate
End With
End Sub