Option Explicit
Sub ConvTxtNum()
Dim Rng As Range, Zon As Range, T(), L&, C&, Chgé As Boolean
Set Rng = Intersect(ActiveSheet.UsedRange, Selection)
If Rng Is Nothing Then Exit Sub
Set Rng = Rng.SpecialCells(xlCellTypeConstants, 2)
If Rng Is Nothing Then Exit Sub
For Each Zon In Rng.Areas
If Zon.Count > 1 Then
Chgé = False
T = Zon.Value
For L = 1 To UBound(T, 1): For C = 1 To UBound(T, 2)
If IsNumeric(T(L, C)) Then T(L, C) = CDbl(T(L, C)): Chgé = True
Next C, L
If Chgé Then Zon.Value = T
ElseIf IsNumeric(Zon.Value) Then
Zon.Value = CDbl(Zon.Value)
End If
Next Zon
End Sub