1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| [Sub TestRetourALaLigne()
Set c = Cells(2, 2)
c.Value = "C'est une triste chose de penser que la nature anticonstitutionellement parle et que le genre humain n'écoute pas." & vbCrLf & "Victor Hugo"
c.WrapText = True
End Sub
Sub testx()
Dim Cel2, Cel3, I, M, Z, TEXTE, H, mot, mots
Set cel1 = [b2]
Set Cel2 = [c1]: Cel2.WrapText = True: Cel2.ColumnWidth = cel1.ColumnWidth: Cel2.ClearContents: H = Cel2.RowHeight
Set Cel3 = [d2]: ActiveSheet.Columns("D").AutoFit
phrase = Split(cel1.Value, vbCrLf)
Z = -1
Do
Z = Z + 1
mots = Split(phrase(Z), " ")
M = -1
Do
M = M + 1
Cel3.Value = mots(M)
ActiveSheet.Columns(Cel3.Column).AutoFit
If Cel3.ColumnWidth > cel1.ColumnWidth Then
TEXTE = TEXTE & vbCrLf
nbl = Cel3.ColumnWidth / (Cel3.ColumnWidth / cel1.ColumnWidth)
For I = 1 To Len(mots(M)) Step nbl + 3: mot = mot & Mid(mots(M), I, nbl + 3) & " ": Next
TEXTE = TEXTE & Replace(Trim(mot), " ", vbCrLf) & " "
Cel2.Value = Cel2.Value & mots(M) & " "
H = Cel2.RowHeight
Else
Cel2.Value = Cel2.Value & mots(M) & " "
TEXTE = TEXTE & mots(M) & " "
If Cel2.RowHeight > H Then TEXTE = Replace(TEXTE, mots(M), vbCrLf & mots(M)): H = Cel2.RowHeight
End If
Loop Until M = UBound(mots)
Cel2.Value = Cel2.Value & vbCrLf
Loop Until Z = UBound(phrase)
MsgBox TEXTE
End Sub |
Partager