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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
| Sub Vers_html_Cellule()
' Définir le texte initial
TexteInitial = ActiveCell.Value
' Nombre de caractère du texte initial
TexteInitialnbCar = Len(TexteInitial)
' ActiveCell.Offset(0, 2).Value = TexteInitialnbCar
ActiveCell.Offset(0, 1).Value = TexteInitial
' Variable pour connaître le nombre de caractères ajoutés à la chaîne suite aux nombres de balises html rajoutées (afin d'identifier les caractères de la chaîne)
j = 0
For i = 1 To TexteInitialnbCar
' Début de chaîne
' "Gras"
If (i = 1 And ActiveCell.Characters(Start:=1, Length:=1).Font.FontStyle = "Gras") Or (ActiveCell.Characters(Start:=i - 1, Length:=1).Font.FontStyle <> "Gras" And ActiveCell.Characters(Start:=i, Length:=1).Font.FontStyle = "Gras") Then
TextePre = Mid(ActiveCell.Offset(0, 1).Value, 1, i - 1 + j)
ActiveCell.Offset(0, 1).Value = TextePre & "<b>" & Mid(TexteInitial, i, TexteInitialnbCar)
j = j + 3
End If
' "Italique"
If (i = 1 And ActiveCell.Characters(Start:=1, Length:=1).Font.FontStyle = "Italique") Or (ActiveCell.Characters(Start:=i - 1, Length:=1).Font.FontStyle <> "Italique" And ActiveCell.Characters(Start:=i, Length:=1).Font.FontStyle = "Italique") Then
TextePre = Mid(ActiveCell.Offset(0, 1).Value, 1, i - 1 + j)
ActiveCell.Offset(0, 1).Value = TextePre & "<i>" & Mid(TexteInitial, i, TexteInitialnbCar)
j = j + 3
End If
' "Souligné"
If (i = 1 And ActiveCell.Characters(Start:=1, Length:=1).Font.Underline = xlUnderlineStyleSingle) Or (ActiveCell.Characters(Start:=i - 1, Length:=1).Font.Underline <> xlUnderlineStyleSingle And ActiveCell.Characters(Start:=i, Length:=1).Font.Underline = xlUnderlineStyleSingle) Then
TextePre = Mid(ActiveCell.Offset(0, 1).Value, 1, i - 1 + j)
ActiveCell.Offset(0, 1).Value = TextePre & "<u>" & Mid(TexteInitial, i, TexteInitialnbCar)
j = j + 3
End If
' Fin de chaîne
' "Gras"
If ActiveCell.Characters(Start:=i - 1, Length:=1).Font.FontStyle = "Gras" And ActiveCell.Characters(Start:=i, Length:=1).Font.FontStyle <> "Gras" Then
TextePre = Mid(ActiveCell.Offset(0, 1).Value, 1, i - 1 + j)
ActiveCell.Offset(0, 1).Value = TextePre & "</b>" & Mid(TexteInitial, i, TexteInitialnbCar)
j = j + 4
End If
' "Italique"
If ActiveCell.Characters(Start:=i - 1, Length:=1).Font.FontStyle = "Italique" And ActiveCell.Characters(Start:=i, Length:=1).Font.FontStyle <> "Italique" Then
TextePre = Mid(ActiveCell.Offset(0, 1).Value, 1, i - 1 + j)
ActiveCell.Offset(0, 1).Value = TextePre & "</i>" & Mid(TexteInitial, i, TexteInitialnbCar)
j = j + 4
End If
' "Souligné"
If ActiveCell.Characters(Start:=i - 1, Length:=1).Font.Underline = xlUnderlineStyleSingle And ActiveCell.Characters(Start:=i, Length:=1).Font.Underline <> xlUnderlineStyleSingle Then
TextePre = Mid(ActiveCell.Offset(0, 1).Value, 1, i - 1 + j)
ActiveCell.Offset(0, 1).Value = TextePre & "</u>" & Mid(TexteInitial, i, TexteInitialnbCar)
j = j + 4
End If
Next i
' Fin de cellule (ordre inversé de prise en compte pour que ça fonctionne sans croisement de balise)
' "Souligné"
If ActiveCell.Characters(Start:=TexteInitialnbCar, Length:=1).Font.Underline = xlUnderlineStyleSingle Then
ActiveCell.Offset(0, 1).Value = ActiveCell.Offset(0, 1).Value & "</u>"
End If
' "Italique"
If ActiveCell.Characters(Start:=TexteInitialnbCar, Length:=1).Font.FontStyle = "Italique" Then
ActiveCell.Offset(0, 1).Value = ActiveCell.Offset(0, 1).Value & "</i>"
End If
' "Gras"
If ActiveCell.Characters(Start:=TexteInitialnbCar, Length:=1).Font.FontStyle = "Gras" Then
ActiveCell.Offset(0, 1).Value = ActiveCell.Offset(0, 1).Value & "</b>"
End If
End Sub |
Partager