Sub testligne()
Set cel = [A1] '
MsgBox Join(lignes(cel), vbCrLf)
End Sub
Sub testligne3()
MsgBox lignes([A1])(3) 'devrait donner la même ligne que la ligne 4 dans la cellule
End Sub
Function lignes(cel)
Dim T, i#
Set T = ActiveSheet.OLEObjects.Add(ClassType:="Forms.TextBox.1", Link:=False, DisplayAsIcon:=False, Left:=1, Top:=1, Width:=cel.Width, Height:=cel.Height)
With T
.Name = "wrapp"
.Activate
.Object.Value = cel.Value
.Object.AutoSize = False
.Object.MultiLine = True
.Object.WordWrap = True
.Object.SelectionMargin = False
.Object.Font.Size = cel.Font.Size
.Object.Font.Name = cel.Font.Name
.Object.Font.Bold = cel.Font.Bold
.Object.Font.Italic = cel.Font.Italic
For i = .Object.LineCount - 1 To 1 Step -1
.Object.CurLine = .Object.LineCount - i
.Object.SelText = vbCrLf
Next
lignes = Split(Replace(.Object.Value, vbCrLf & vbCrLf, vbCrLf), vbCrLf)
End With
ActiveSheet.OLEObjects("wrapp").Delete
End Function