Oui c'est possible, utilise ce code :
Sub align()
Dim derlig As Long, i As Long, ligne As Long
Dim temp As String
Application.ScreenUpdating = False
derlig = Cells.Find("*", , , , xlByRows, xlPrevious).Row
For i = 1 To derlig
ligne = 0
If IsNumeric(Left(Range("E" & i), 3)) Then
temp = Range("E" & i)
ligne = Range("AA:AA").Find(temp, , , xlValue).Row
ElseIf IsNumeric(Left(Range("F" & i), 3)) Then
temp = Range("F" & i)
ligne = Range("AB:AB").Find(temp, , , xlValue).Row
ElseIf IsNumeric(Left(Range("G" & i), 3)) Then
temp = Range("G" & i)
ligne = Range("AC:AC").Find(temp, , , xlValue).Row
End If
If ligne <> 0 Then
Do While ligne < i
Range("AA" & ligne & ":IV" & ligne).Insert Shift:=xlDown
ligne = ligne + 1
Loop
End If
Next i
End Sub
Voici le fichier correspondant :
J'ai également mis une macro (align2) qui prend en compte la couleur de la cellule (bien que je n'en vois pas trop l'utilité).