Tableur Exel , quel est la fonction pour passer de chiffre en lettre?

Tableur Exel , quel est la fonction pour passer de chiffre en lettre? - Logiciels - Windows & Software

Marsh Posté le 10-07-2008 à 11:22:07    

Bonjour ,
 
 je m'explique...
 
par exemple la fonction qui transforme  "401" en "quatre cent un" ..?
 
Merci, biz

Reply

Marsh Posté le 10-07-2008 à 11:22:07   

Reply

Marsh Posté le 10-07-2008 à 13:08:29    

Quand j'ai cherché, je n'ai pas trouvé. J'en ai donc écrit une qui fonctionne bien pour tout montant < 1 million.
Si ça t'intéresse, je peux te la faire parvenir.

Reply

Marsh Posté le 10-07-2008 à 14:20:54    

Oui ca m'interesserai... S.T.P

Reply

Marsh Posté le 10-07-2008 à 15:14:16    

Je t'ai envoyé le code via message privé. Donc enregistrer la fonction en .xla et la stocker dans le répertoire des macros complémentaires.

Reply

Marsh Posté le 11-07-2008 à 07:15:57    

Merci, ca a l'air de marcher mais je vois pas comment la mettre dans exel...
 
J'ai réussi a bidouiller dans les macros, je me retrouve sur Visula Basic, ca marche sur le classeur, apres je reessaye et ca ne marche plus ...
 
Fin je sais pas trop comment l'enregistrer etc..
 
j'ai copié sur le notepad et enregistré en .xla ... mais bon aprés...
 
Merci

Reply

Marsh Posté le 11-07-2008 à 10:31:52    

1) ouvrir Excel--> nouveau classeur
2) menu Macro--> Visual Basic Editor
3) fenêtre Visual Basic Editor --> menu Insertion--> module --> copie du code dans la fenêtre
4) fenêtre Excel --> menu Fichier --> Enregistrer sous --> type de fichier (*.xla) , nom = chiflettre
4) fermer fenêtres Excel et Visual basic
 
Vérifier si la macro est bien activée:
1) ouvrir Excel --> nouveau classeur
2) menu Outil --> macros complémentaires : la macro doit apparaître et est être cochée.    
 
 

Reply

Marsh Posté le 11-07-2008 à 10:52:33    

MErci tout plein !!!!!

Reply

Marsh Posté le 11-07-2008 à 11:03:52    

Bonjour
 

thev a écrit :

Je t'ai envoyé le code via message privé. Donc enregistrer la fonction en .xla et la stocker dans le répertoire des macros complémentaires.


 
Quel dommage que la fonction n'apparait pas ici, ca pourrait servir pour d'autres personnes...
 
Cordialement


---------------
Soyez malin, louez entre voisins !
Reply

Marsh Posté le 11-07-2008 à 11:49:36    

Je n'avais pas mis le code pour ne pas encombrer le sujet.
Donc, voici mon code. Je n'ai pas traité le montant >=  un million mais on peut l'ajouter si nécessaire.
 
Function ChifLettre(montant)
 
' Constantes
 
Unité = Array("", "UN", "DEUX", "TROIS", "QUATRE", "CINQ", "SIX", "SEPT", "HUIT", "NEUF" )
Dizunité = Array("", "ONZE", "DOUZE", "TREIZE", "QUATORZE", "QUINZE", "SEIZE" )
dizaine = Array("", "DIX", "VINGT", "TRENTE", "QUARANTE", "CINQUANTE", "SOIXANTE", "SOIXANTE DIX", "QUATRE VINGT", "QUATRE VINGT DIX" )
 
 
' ************************************
 
If IsNumeric(montant) = False Then
    L = "valeur non numérique"
    GoTo fin
End If
chif_euros = Abs(Fix(montant))
 
' recherche centaine millier "
 
qcm = chif_euros \ 100000
rcm = chif_euros Mod 100000
If qcm > 9 Then
    L = "montant non pris en charge"
    GoTo fin
End If
 
 
If qcm > 1 Then
    L = Unité(qcm) & " "
End If
If qcm > 0 Then
     L = L & "CENT" & " "
End If
 
' recherche millier "
 
qm = rcm \ 1000
rm = rcm Mod 1000
 
If qm = 1 And L <> Empty _
Or qm > 1 Then
    qd = qm \ 10
    rd = qm Mod 10
    GoSub dizaine
    L = L & D
End If
If qcm > 0 Or qm > 0 Then
    L = L & "MILLE" & " "
End If
 
' recherche centaine "
 
qc = rm \ 100
rc = rm Mod 100
 
If qc > 1 Then
   L = L & Unité(qc) & " "
End If
If qc > 0 Then
    L = L & "CENT" & " "
End If
 
 
' recherche dizaine "
 
qd = rc \ 10
rd = rc Mod 10
 
GoSub dizaine
L = L & D
If chif_euros > 1 Then
    L = L & "EUROS" & " "
End If
If chif_euros = 1 Then
    L = L & "EURO" & " "
End If
 
' recherche centimes "
Dim chif_millième As Integer
Dim quotient As Integer
Dim reste As Integer
chif_millième = Int((Abs(montant) - chif_euros) * 1000)
quotient = chif_millième \ 10
reste = chif_millième Mod 10
If reste < 5 Then
    chif_centimes = quotient
Else
    chif_centimes = quotient + 1
End If
qd = chif_centimes \ 10
rd = chif_centimes Mod 10
GoSub dizaine
If Int(chif_centimes) > 1 Then
    Lc = "ET " & D & "CENTIMES"
End If
If Int(chif_centimes) = 1 Then
    Lc = "ET " & D & "CENTIME"
End If
 
 
' fin fonction
 
GoTo fin
 
' ***************** fonction dizaine *******************
 
dizaine:
 
lien = ""
If qd = 0 Then
   i3 = rd
   i2 = 0
   i1 = 0
End If
 
If qd = 1 Then
    If rd > 0 And rd < 7 Then
        i3 = 0
        i2 = rd
        i1 = 0
    Else
        i3 = rd
        i2 = 0
        i1 = qd
        If rd > 0 Then
           lien = " "
        End If
    End If
End If
 
If qd > 1 And qd < 7 Or qd = 8 Then
   i3 = rd
   i2 = 0
   i1 = qd
   If rd = 1 And qd <> 8 Then
      lien = " ET "
   Else
      lien = " "
   End If
End If
 
If qd = 7 Or qd = 9 Then
    lien = " "
    If rd > 0 And rd < 7 Then
        i3 = 0
        i2 = rd
        i1 = qd - 1
    Else
        i3 = rd
        i2 = 0
        i1 = qd
    End If
End If
 
D = dizaine(i1) & lien & Dizunité(i2) & Unité(i3) & " "
 
Return
 
' ***************** fin routine dizaine *******************
   
fin:
ChifLettre = L & Lc
 
End Function


Message édité par thev le 11-07-2008 à 11:54:36
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed