Bonjour,
La propriété Font.Subscript qui permet de mettre en Indice (ou de l'enlever) une partie du contenu de la cellule ne fonctionne pas correctement lorsque le contenu de la cellule à des caractéristique de police (Exposant - Indice - Normal) hétérogène.
Au moins dans mon code 😠
Voici un exemple de résultats obtenus
Le code
En PJ, le fichier correspondant.
Merci d'avance à la personne qui m'indiquera ma (ou mes) erreur(s) ...
La propriété Font.Subscript qui permet de mettre en Indice (ou de l'enlever) une partie du contenu de la cellule ne fonctionne pas correctement lorsque le contenu de la cellule à des caractéristique de police (Exposant - Indice - Normal) hétérogène.
Au moins dans mon code 😠
Voici un exemple de résultats obtenus
Le code
VB:
Option Explicit
Sub CaractèresIndicésNonIndicés()
Dim i As Integer
Dim Message As String
Application.ScreenUpdating = False
Message = "Liste des caractères passés de Indicé à Non Indicé :"
For i = 1 To Len(ActiveCell.Value)
If ActiveCell.Characters(i, 1).Font.Subscript = True Then
ActiveCell.Characters(i, 1).Font.Subscript = False
Message = Message & vbLf & i & "ème caractère : " & ActiveCell.Characters(i, 1).Caption
End If
Next i
Application.ScreenUpdating = True
MsgBox Message
End Sub
Sub ChiffresEnIndicés()
Dim i As Integer
Dim CaractèreCourant As String
Dim Message As String
Application.ScreenUpdating = False
Message = "Liste des caractères passés en Indicés :"
For i = 1 To Len(ActiveCell.Value)
CaractèreCourant = Mid(ActiveCell.Value, i, 1)
If CaractèreCourant >= "0" And CaractèreCourant <= "9" Then
ActiveCell.Characters(i, 1).Font.Subscript = True
Message = Message & vbLf & i & "ème caractère : " & ActiveCell.Characters(i, 1).Caption
End If
Next i
Application.ScreenUpdating = True
MsgBox Message
End Sub
Sub NonChiffresEnNonIndicés()
Dim i As Integer
Dim CaractèreCourant As String
Dim Message As String
Application.ScreenUpdating = False
Message = "Liste des caractères passés en Non Indicés :"
For i = 1 To Len(ActiveCell.Value)
CaractèreCourant = Mid(ActiveCell.Value, i, 1)
If CaractèreCourant < "0" Or CaractèreCourant > "9" Then
ActiveCell.Characters(i, 1).Font.Subscript = False
Message = Message & vbLf & i & "ème caractère : " & ActiveCell.Characters(i, 1).Caption
End If
Next i
Application.ScreenUpdating = True
MsgBox Message
End Sub
Merci d'avance à la personne qui m'indiquera ma (ou mes) erreur(s) ...