cosi' ti puo' andare bene?
codice:
Private Function formatNumStringa(prms_Input As String, prml_NumChar As Long, _
    Optional prms_FormatChar As String = "0") As String

 '#######################################

'# Parametri:                                                                  #
'#     prms_Input: Stringa da formattare                                       #
'#     prml_NumChar: Numero dei caratteri per i quali formattare               #
'#     prms_FormatChar: Carattere usato per formattare                         #
'# Valore restituito:                                                          #
'#     stringa che formatta i numeri in maniera che siano sia numericamente    #
'#     che alfabeticamente ordinati                                            #
'#   "10 - Padova Arcella" -> "0000000010 - Padova Arcella                     #
 '#######################################


Dim i As Integer
Dim ls_temp As String
Dim ls_Str000 As String
Dim strDummy    As String

    ls_Str000 = String$(prml_NumChar, prms_FormatChar)
    For i = 1 To Len(prms_Input)
        If IsNumeric(Mid$(prms_Input, i, 1)) Then
            ls_temp = ls_temp + Trim(Mid$(prms_Input, i, 1))
        Else
            If ls_temp <> "" Then
                strDummy = strDummy + formatNumStringa + Right(ls_Str000 + ls_temp, Len(ls_Str000))
                formatNumStringa = ""
                ls_temp = ""
            End If
            formatNumStringa = formatNumStringa + Mid$(prms_Input, i, 1)
        End If
    Next i
    formatNumStringa = strDummy + formatNumStringa + Right(ls_Str000 + ls_temp, Len(ls_Str000))
End Function