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 79 80 81 82 83 84 85 86 87 88 89 90
| Sub Mise_en_Forme_2()
'
' Supprime les caractère en rouge et met en noir les caractères en vert
'
Dim Debut As Integer
Dim Longueur As Integer
Dim LnCell As Integer
Dim Couleur As Integer
Dim Cellule As Range
'Windows("Classeur1.xls").Activate
Worksheets("Feuil1").Activate
'Application.ScreenUpdating = False
For i = 11 To 12 '658 'Boucle sur toutes les lignes du fichier
Set Cellule = Range("c" & i) 'Affecte l'adresse de la cellule à traiter à la variable Cellule
LnCell = Len(Cellule) 'Calcul le nombre total de caractères de la cellule à traiter
Debut = 1
Longueur = 1
MsgBox ("Traitement Ligne " & i)
For j = 1 To LnCell 'Fonction qui recherche les codes de couleurs
If Cellule.Characters(j, 1).Font.ColorIndex < -1 Then 'égal à -4105 déjà présents dans la cellule
Cellule.Characters(j, 1).Font.ColorIndex = 1 'Corrige le code par le noir
'MsgBox ("erreur couleur police cellule H" & i & " position " & j)
End If
Next j
Do 'Boucle qui permet de traiter tous les caractères de la cellule traitée
If LnCell = 0 Then Exit Do 'Sort de la boucle pour les celulles vides
While IsNumeric(Cellule.Characters(Debut, Longueur).Font.ColorIndex) And (Debut + Longueur) < LnCell + 2
Longueur = Longueur + 1 'Boucle qui permet de connaitre la longeur de la chaine de caractères
'de même couleur + 1 caractère (on sort de la boucle lorsque deux caractéres
'consécutifs n'ont pas la même couleur)
Wend
If Cellule.Characters(Debut, Longueur - 1).Font.ColorIndex > -1 Then 'Test pour discriminer la couleur -4105
Couleur = Cellule.Characters(Debut, Longueur - 1).Font.ColorIndex
End If
MsgBox (Cellule.Characters(Debut, Longueur - 1).Caption)
Select Case Couleur
Case 1 'Couleur noir
Debut = Debut + Longueur - 1 'Incrémentation compteur
Case 10 'Couleur Verte
Cellule.Characters(Debut, Longueur - 1).Font.ColorIndex = 1 'On met la police en noir
Debut = Debut + Longueur - 1 'Incrémentation compteur
Case 14 'Autre couleur verte
Cellule.Characters(Debut, Longueur - 1).Font.ColorIndex = 1 'On met la police en noir
Debut = Debut + Longueur - 1 'Incrémentation compteur
Case 3 'Couleur rouge
If Cellule.Characters(Debut, 1).Text = " " Then 'Si le premier caractere est un espace, on le
Cellule.Characters(Debut, 1).Font.ColorIndex = 1 'met en couleur noire et on ne le supprime pas.
Cellule.Characters(Debut + 1, Longueur - 2).Delete 'Suppression du reste
Debut = Debut + 1 'Incrémentation compteur
LnCell = LnCell - Longueur + 2 'Modification de la longueur totale de la chaine à traiter
Else
Cellule.Characters(Debut, Longueur - 1).Delete 'Si le premier caractère n'est pas un espace
LnCell = LnCell - Longueur + 1 'Modification de la longueur totale de la chaine à traiter 'on supprime l'ensemble
End If
End Select
Longueur = 1
Loop While Debut < LnCell
'Rows(i & ":" & i).EntireRow.AutoFit 'adapte la hauteur de la ligne en fonction du contenu de la cellule
Next i
'Columns("H:H").Select
'With Selection
' .VerticalAlignment = xlTop
' .Orientation = 0
' .AddIndent = False
' .IndentLevel = 0
' .ShrinkToFit = False
' .ReadingOrder = xlContext
' .MergeCells = False
'End With
' Application.ScreenUpdating = True
End Sub |
Partager