Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim source, corres, ub&, i&, t$, j&
If Target.Address = "$F$3" Then
Cancel = True
source = [B4:B7] 'à adapter
corres = [C10:D20] 'à adapter
ub = UBound(corres)
tri corres, 1, ub 'tri numérique croissant
For i = 1 To UBound(source)
t = source(i, 1)
For j = ub To 1 Step -1
t = Replace(t, corres(j, 1), corres(j, 2) & ",")
Next
source(i, 1) = Left(t, Len(t) - 1)
Next
Target(2).Resize(UBound(source)) = source
ElseIf Target.Address = "$G$25" Then
Cancel = True
source = [A26:A29] 'à adapter
corres = [F26:F29] 'à adapter
For i = 1 To UBound(source)
If source(i, 1) <> "" Then source(i, 1) = corres(i, 1)
Next
Target(2).Resize(UBound(source)) = source
End If
End Sub
Sub tri(a, gauc, droi) ' Quick sort (adaptée au tri numérique sur 2 colonnes)
Dim ref, g, d, temp
ref = Val(a((gauc + droi) \ 2, 1))
g = gauc: d = droi
Do
Do While Val(a(g, 1)) < ref: g = g + 1: Loop
Do While ref < Val(a(d, 1)): d = d - 1: Loop
If g <= d Then
temp = a(g, 1): a(g, 1) = a(d, 1): a(d, 1) = temp
temp = a(g, 2): a(g, 2) = a(d, 2): a(d, 2) = temp
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call tri(a, g, droi)
If gauc < d Then Call tri(a, gauc, d)
End Sub