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
| Option Explicit
Sub Traiter()
With Worksheets("Feuil1")
Formater .Range("A1"), .Range("A2")
End With
End Sub
Private Sub Formater(ByVal c As Range, ByVal v As Range)
Dim i As Integer
Dim Tb
With v.Font
.Bold = True
.Color = 255
End With
Tb = Commun(c.Value, v.Value)
If IsArray(Tb) Then
For i = 1 To UBound(Tb, 2)
With v.Characters(Start:=Tb(1, i), Length:=Tb(2, i)).Font
.Bold = False
.Color = 0
End With
Next i
End If
End Sub
Private Function Commun(ByVal Str1 As String, ByVal Str2 As String) As Variant
Dim i As Integer, k As Integer, n As Integer
Dim Res() As Integer
Dim Tb
If Len(Str1) > 0 And Len(Str2) > 0 Then
Tb = Split(Str1)
Str2 = " " & Str2 & " "
ReDim Res(1 To 2, 0 To 0)
For i = 0 To UBound(Tb)
n = 1
Do
n = InStr(n + Res(2, k), Str2, " " & Tb(i) & " ", vbTextCompare)
If n > 0 Then
k = k + 1
ReDim Preserve Res(1 To 2, 0 To k)
Res(1, k) = n
Res(2, k) = Len(Tb(i)) + 1
End If
Loop While n <> 0
Next i
Commun = Res
End If
End Function |
Partager