bonsoir a tous
voila je cherchais a faire un tableau(array) avec une chaine numérique
le problème étant résolu, j'ai mis en application mon idée suite a la contribution de casefayere a savoir
transformer les nombre en lettre les chiffre en lettre
alors voila j'ai pris le parti de reduire les array en string au stricte minimum
array 1 les mesure unité
array2 les unité
array 3 les dizaines
vous me dirais oui mais comment traité1573 par exemple
et c'est la que m'est bien utilise le tableau de chiffre
en bouclant dessus selon son index dans le tableau c'est une centaine,dizaine,unité

bon voila mes deux soucis la boucle commence par 0 et comme je me sert de l'index-1 pour vérifier forcement vous vous en doutez j'ai un bug alors je stop au ubound()-1
malheureusement ca me traitre pas le dernier chiffre en partant de la droite
je le fait donc en sortie de boucle mais je pert les index pour les mesure d'unité

le 2 eme soucis c'est le array mesure qui foire un peu ou du moins j'arrive pas a adapter mesure(i) a chaque item en fonction de sa colonne

je vous laisse regarder
comme vous pourrez le constater dans le debug le nombre en lettre est bon c'est les mesure que je n'arrive pas a adapter
merci pour le retour
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub Test()
    Dim tablo() As Byte
    Dim dep As Long
    mesure = Array("", "", " cent ", " mille ", "", " cent ", " million ", "", " cent ", "", "", " cent ", "", "", " cent ", "", "", " cent ", "", "", " cent ", "", "", " cent ", "", "", "", "", "", "", "", "", "")
    unit1 = Array("", " Un", " Deux", " Trois", " Quatre", " Cinq", " Six", " Sept", " Huit", " Neuf", " Dix", " Onze", " Douze", " Treize", " Quatorze", " Quinze", " Seize", " Dix Sept", " Dix Huit", " Dix Neuf")
    unit10 = Array("", " dix ", " vingt ", " trente ", " quarante ", " cinquante ", " soixante ", " soixante dix ", " quatre-vingt ", " quatre-vingt dix ")
    nombre = 473856354811497#
    tablo = StrConv(nombre, vbFromUnicode)
    ReDim tablf(UBound(tablo))
 
    For I = 0 To UBound(tablo) - 1
          Index = Chr(tablo(UBound(tablo) - I))
        Index_1 = Chr(tablo(UBound(tablo) - (I + 1)))
        Select Case I
        Case 0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30
            tablf(UBound(tablf) - I) = unit1(Index)
            If Index_1 = 1 Or Index_1 = 7 Or Index_1 = 9 And Index > 0 Then tablf(UBound(tablf) - I) = unit1(Index + 10) & mesure(I): pas = 1:
 
         Case 2, 5, 8, 11, 14, 17, 20, 23, 26, 29
          tablf(UBound(tablf) - I) = unit1(Index - pas) & mesure(I)
 
         Case 1, 4, 7, 10, 13, 16, 19, 22, 25, 28
            tablf(UBound(tablf) - I) = unit10(Index - pas) & mesure(I)
 
           pas = 0
        End Select
        tablf(0) = unit1(Chr(tablo(0)))
    Next
    Debug.Print Join(tablf, "|")
  End Sub
merci pour vos retours