Ho questa funzione di Xegallo che formatta una stringa, in base alla stringa, al carattere scelto e alla lunghezza definita.
Solamente che se gli dico di formattare "pippo",56,"#"; lui mi restituisce "pippo" + 56 "#", quindi una stringa di Len = 61

A me serve una stringa di 56 con all' interno "pippo" ...

Vi posto il codice:

codice:
Public Function formatNumStringa(prms_Input As String, prml_NumChar As Long, _
    Optional prms_FormatChar As String = "#") 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