OVH Cloud OVH Cloud

chiffre en lettre

8 réponses
Avatar
david
bonjour a tous voila mes petite question d'un novice
je voudrais convertir un résultat d'un chiffre en lettre
et je voudrais masquer une ligne si un céllule est supérieur a 1
merci a tous

8 réponses

Avatar
ABED HADDOU
je voudrais convertir un résultat d'un chiffre en lettre


http://www.excelabo.net/moteurs/recherche.php

Abed_H




bonjour a tous voila mes petite question d'un novice
je voudrais convertir un résultat d'un chiffre en lettre
et je voudrais masquer une ligne si un céllule est supérieur a 1
merci a tous



Avatar
RGI
Bonjour

avec cette fonction dans un module

Function chiffrelettre(s)
Dim a As Variant, gros As Variant
a = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _
"huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze",
"seize", "dix sept", _
"dix huit", "dix neuf", "vingt", "vingt et un", "vingt deux", "vingt
trois", "vingt quatre", _
"vingt cinq", "vingt six", "vingt sept", "vingt huit", "vingt neuf",
"trente", "trente et un", _
"trente deux", "trente trois", "trente quatre", "trente cinq", "trente
six", "trente sept", _
"trente huit", "trente neuf", "quarante", "quarante et un", "quarante
deux", "quarante trois", _
"quarante quatre", "quarante cinq", "quarante six", "quarante sept",
"quarante huit", _
"quarante neuf", "cinquante", "cinquante et un", "cinquante deux",
"cinquante trois", _
"cinquante quatre", "cinquante cinq", "cinquante six", "cinquante sept",
"cinquante huit", _
"cinquante neuf", "soixante", "soixante et un", "soixante deux",
"soixante trois", _
"soixante quatre", "soixante cinq", "soixante six", "soixante sept",
"soixante huit", _
"soixante neuf", "soixante dix", "soixante et onze", "soixante douze",
"soixante treize", _
"soixante quatorze", "soixante quinze", "soixante seize", "soixante dix
sept", _
"soixante dix huit", "soixante dix neuf", "quatre-vingts", "quatre-vingt
un", _
"quatre-vingt deux", "quatre-vingt trois", "quatre-vingt quatre",
"quatre-vingt cinq", _
"quatre-vingt six", "quatre-vingt sept", "quatre-vingt huit",
"quatre-vingt neuf", _
"quatre-vingt dix", "quatre-vingt onze", "quatre-vingt douze",
"quatre-vingt treize", _
"quatre-vingt quatorze", "quatre-vingt quinze", "quatre-vingt seize",
"quatre-vingt dix sept", _
"quatre-vingt dix huit", "quatre-vingt dix neuf")
gros = Array("", "billions", "milliards", "millions", "mille", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = s * 100 - (Int(s) * 100)
s = Str(Int(s)): lg = Len(s) - 1: s = Right(s, lg): lg = Len(s)
If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = ""
s = chaine + s
'billions au centaines
gp = 1
For k = 1 To 5
x = Mid(s, gp, 1): c = a(Val(x))
x = Mid(s, gp + 1, 2): d = a(Val(x))
If k = 5 Then
If t2 <> "" And c & d = "" Then mydz = "Euros" & sp: GoTo fin
If t <> "" And c = "" And d = "un" Then mydz = "un Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & sp: GoTo fin
If t & c & d = "" Then myct = "": mydz = "": GoTo fin
End If
If c & d = "" Then GoTo fin
If d = "" And c <> "" And c <> "un" Then mydz = c & sp & "cents " &
gros(k) & sp: GoTo fin
If d = "" And c = "un" Then mydz = "cent " & gros(k) & sp: GoTo fin
If d = "un" And c = "" Then myct = IIf(k = 4, gros(k) & sp, "un " &
gros(k + 5) & sp): GoTo fin
If d <> "" And c = "un" Then mydz = "cent" & sp
If d <> "" And c <> "" And c <> "un" Then mydz = c & sp & "cent" + sp
myct = d & sp & gros(k) & sp
fin:
t2 = mydz & myct
t = t & mydz & myct
mydz = "": myct = ""
gp = gp + 3
Next
d = a(centime)
If t <> "" Then myct = IIf(centime = 1, " centime", " centimes")
If t = "" Then myct = IIf(centime = 1, " centime d'Euro", " centimes
d'Euro")
If centime = 0 Then d = "": myct = ""
chiffrelettre = t & d & myct
End Function


en a1 le nombre à convertir

dans une autre cellule

=chiffrelettre($A$1)

2° question

dans le code de la feuille
la ligne 40 sera masquée si a1 > 1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [a1] > 1 Then
Rows("40:40").Select
Selection.EntireRow.Hidden = True
End If
End Sub


salutations

RGI

bonjour a tous voila mes petite question d'un novice
je voudrais convertir un résultat d'un chiffre en lettre
et je voudrais masquer une ligne si un céllule est supérieur a 1
merci a tous




Avatar
david
merci j'ai trouver pour la conversion mais je n'ai pas trouver pour masquer
la ligne 24 si A24 est vide
merci
Avatar
david
je n'y arrive pas
en faite je voudrais masquer la ligne 24 da la feuille david
si la cellule a1 de la feuille annie est vide
merci a tous
Avatar
JLuc
merci j'ai trouver pour la conversion mais je n'ai pas trouver pour masquer
la ligne 24 si A24 est vide
merci


peut etre comme ca :
For Each cellule In Range("A1:1" & Range("A65536").End(xlUp).Row)
If cellule = "" Then
cellule.EntireRow.Hidden = True
End If
Next

--
JLuc

Avatar
Lolote
Salut RGI,

Superbe fonction qui marche nickel !!!!
Juste un truc, Euro reste invariable même s'il y en a 100 (100 euro), mille
ou même des milliars.
Pour t'en convaincre, regarde un billet quelconques 5 euro, 10 euro ou plus.
Il est vrai par contre que les billets en franc avait le S à la fin du style
10 francs, 100 francs....

@+ Lolote


"RGI" a écrit dans le message de news:

Bonjour

avec cette fonction dans un module

Function chiffrelettre(s)
Dim a As Variant, gros As Variant
a = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _
"huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze",
"seize", "dix sept", _
"dix huit", "dix neuf", "vingt", "vingt et un", "vingt deux", "vingt
trois", "vingt quatre", _
"vingt cinq", "vingt six", "vingt sept", "vingt huit", "vingt neuf",
"trente", "trente et un", _
"trente deux", "trente trois", "trente quatre", "trente cinq", "trente
six", "trente sept", _
"trente huit", "trente neuf", "quarante", "quarante et un", "quarante
deux", "quarante trois", _
"quarante quatre", "quarante cinq", "quarante six", "quarante sept",
"quarante huit", _
"quarante neuf", "cinquante", "cinquante et un", "cinquante deux",
"cinquante trois", _
"cinquante quatre", "cinquante cinq", "cinquante six", "cinquante sept",
"cinquante huit", _
"cinquante neuf", "soixante", "soixante et un", "soixante deux", "soixante
trois", _
"soixante quatre", "soixante cinq", "soixante six", "soixante sept",
"soixante huit", _
"soixante neuf", "soixante dix", "soixante et onze", "soixante douze",
"soixante treize", _
"soixante quatorze", "soixante quinze", "soixante seize", "soixante dix
sept", _
"soixante dix huit", "soixante dix neuf", "quatre-vingts", "quatre-vingt
un", _
"quatre-vingt deux", "quatre-vingt trois", "quatre-vingt quatre",
"quatre-vingt cinq", _
"quatre-vingt six", "quatre-vingt sept", "quatre-vingt huit",
"quatre-vingt neuf", _
"quatre-vingt dix", "quatre-vingt onze", "quatre-vingt douze",
"quatre-vingt treize", _
"quatre-vingt quatorze", "quatre-vingt quinze", "quatre-vingt seize",
"quatre-vingt dix sept", _
"quatre-vingt dix huit", "quatre-vingt dix neuf")
gros = Array("", "billions", "milliards", "millions", "mille", "Euros",
"billion", _
"milliard", "million", "mille", "Euro")
sp = Space(1)
chaine = "00000000000000"
centime = s * 100 - (Int(s) * 100)
s = Str(Int(s)): lg = Len(s) - 1: s = Right(s, lg): lg = Len(s)
If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = ""
s = chaine + s
'billions au centaines
gp = 1
For k = 1 To 5
x = Mid(s, gp, 1): c = a(Val(x))
x = Mid(s, gp + 1, 2): d = a(Val(x))
If k = 5 Then
If t2 <> "" And c & d = "" Then mydz = "Euros" & sp: GoTo fin
If t <> "" And c = "" And d = "un" Then mydz = "un Euros" & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = "d'Euros" & sp: GoTo fin
If t & c & d = "" Then myct = "": mydz = "": GoTo fin
End If
If c & d = "" Then GoTo fin
If d = "" And c <> "" And c <> "un" Then mydz = c & sp & "cents " &
gros(k) & sp: GoTo fin
If d = "" And c = "un" Then mydz = "cent " & gros(k) & sp: GoTo fin
If d = "un" And c = "" Then myct = IIf(k = 4, gros(k) & sp, "un " & gros(k
+ 5) & sp): GoTo fin
If d <> "" And c = "un" Then mydz = "cent" & sp
If d <> "" And c <> "" And c <> "un" Then mydz = c & sp & "cent" + sp
myct = d & sp & gros(k) & sp
fin:
t2 = mydz & myct
t = t & mydz & myct
mydz = "": myct = ""
gp = gp + 3
Next
d = a(centime)
If t <> "" Then myct = IIf(centime = 1, " centime", " centimes")
If t = "" Then myct = IIf(centime = 1, " centime d'Euro", " centimes
d'Euro")
If centime = 0 Then d = "": myct = ""
chiffrelettre = t & d & myct
End Function


en a1 le nombre à convertir

dans une autre cellule

=chiffrelettre($A$1)

2° question

dans le code de la feuille
la ligne 40 sera masquée si a1 > 1

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [a1] > 1 Then
Rows("40:40").Select
Selection.EntireRow.Hidden = True
End If
End Sub


salutations

RGI

bonjour a tous voila mes petite question d'un novice
je voudrais convertir un résultat d'un chiffre en lettre
et je voudrais masquer une ligne si un céllule est supérieur a 1
merci a tous






Avatar
Francois L
Salut RGI,

Superbe fonction qui marche nickel !!!!
Juste un truc, Euro reste invariable même s'il y en a 100 (100 euro), mille
ou même des milliars.
Pour t'en convaincre, regarde un billet quelconques 5 euro, 10 euro ou plus.
Il est vrai par contre que les billets en franc avait le S à la fin du style
10 francs, 100 francs....



Bonsoir Lolote,

Désolé, mais euro n'est pas, contrairement à une idée répandue,
invariable en français.

Voir par exemple
http://www.sdv.fr/cgi/orthonet/orthonet?mot=euro&x=0&y=0

S'il n'y a pas de "s" sur les billets, c'est uniquement pour les rendre
identiques dans toute la zone euro.

--
François L

Avatar
Lolote
Salut Francois L,
Merci pour l'info, je ne le savais pas!!!!
Désormais je pourrais rédiger mes chèques avec un S.
Au fait, combien d'euros pour l'info ?????? Pas trop quand même !!!!!
Et encore merci
@+ Lolote


"Francois L" a écrit dans le message de news:

Salut RGI,

Superbe fonction qui marche nickel !!!!
Juste un truc, Euro reste invariable même s'il y en a 100 (100 euro),
mille ou même des milliars.
Pour t'en convaincre, regarde un billet quelconques 5 euro, 10 euro ou
plus.
Il est vrai par contre que les billets en franc avait le S à la fin du
style 10 francs, 100 francs....



Bonsoir Lolote,

Désolé, mais euro n'est pas, contrairement à une idée répandue, invariable
en français.

Voir par exemple
http://www.sdv.fr/cgi/orthonet/orthonet?mot=euro&x=0&y=0

S'il n'y a pas de "s" sur les billets, c'est uniquement pour les rendre
identiques dans toute la zone euro.

--
François L