OVH Cloud OVH Cloud

des chiffres en lettres

8 réponses
Avatar
fth
Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric

8 réponses

Avatar
Eric
Bonjour Frédéric,

Je viens de tester la fonction de jessy sur Access2000 et aucun problème.

Private Sub Commande2_Click()
Label2.Caption = ConvertNbLettres(Texte0, "€uro")
' Texte0 contient la valeur 1298545
End Sub

Le résultat dans le label2 est :
Un million deux cent quatre-vingt dix-huit mille cinq cent quarante cinq
€uros

Sur quellle ligne as-tu l'erreur Type Mismatch?
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric



Avatar
fth
bonjour Eric,

ça "calle" à partir d'ici:
varnum = Int(Nb / 1000000)

et idem pour les autres parties au mm endroit.

Je suis sru access 2003
je ne pense pas que ça puisse changer qq chose ...
Si?

Merci

Frederic


Bonjour Frédéric,

Je viens de tester la fonction de jessy sur Access2000 et aucun problème.

Private Sub Commande2_Click()
Label2.Caption = ConvertNbLettres(Texte0, "€uro")
' Texte0 contient la valeur 1298545
End Sub

Le résultat dans le label2 est :
Un million deux cent quatre-vingt dix-huit mille cinq cent quarante cinq
€uros

Sur quellle ligne as-tu l'erreur Type Mismatch?
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric






Avatar
Eric
re,

Je pense que tu as du taper dans ta zone de texte un . comme séparateur
décimal d'ou l'erreur 13 Type Mismatch.
Si c'est le cas, passes à la fonction de Jessy la valeur de la zone de
texte retraitée par un Replace()
du genre :
Label2.Caption = ConvertNbLettres(Replace(Texte0, ".", ","), "€uro")

(A adapter en fonction de ton séparateur décimal)

--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric



Avatar
Eric
non,
ca change rien mais je viens de te poster une source probable de ton
problème
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

bonjour Eric,

ça "calle" à partir d'ici:
varnum = Int(Nb / 1000000)

et idem pour les autres parties au mm endroit.

Je suis sru access 2003
je ne pense pas que ça puisse changer qq chose ...
Si?

Merci

Frederic



Bonjour Frédéric,

Je viens de tester la fonction de jessy sur Access2000 et aucun problème.

Private Sub Commande2_Click()
Label2.Caption = ConvertNbLettres(Texte0, "€uro")
' Texte0 contient la valeur 1298545
End Sub

Le résultat dans le label2 est :
Un million deux cent quatre-vingt dix-huit mille cinq cent quarante cinq
€uros

Sur quellle ligne as-tu l'erreur Type Mismatch?
--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric








Avatar
fth
Re,
oups...
je vérifie cela

maintenant, c'est à txtlabel.caption etc..
que j'ai une erreur

décidement ...

NB: Je ne saisis pas bien ta dernière modification ...
Merci


re,

Je pense que tu as du taper dans ta zone de texte un . comme séparateur
décimal d'ou l'erreur 13 Type Mismatch.
Si c'est le cas, passes à la fonction de Jessy la valeur de la zone de
texte retraitée par un Replace()
du genre :
Label2.Caption = ConvertNbLettres(Replace(Texte0, ".", ","), "€uro")

(A adapter en fonction de ton séparateur décimal)

--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric






Avatar
fth
Re bonjour Eric,

Sorry pour mon dernier post, j'ai trouvé ce qui clochait.

par contre maitnenant, j'aimerais appliquer cette fonction à des factures.
Seulement voila:
le nombre à convertir est en format "currency" (normal sur une facture)..

Est-ce que la partie "replace" pourrait solutionner ceal?

D'avance merci

Frédéric

"fth" wrote:

Re,
oups...
je vérifie cela

maintenant, c'est à txtlabel.caption etc..
que j'ai une erreur

décidement ...

NB: Je ne saisis pas bien ta dernière modification ...
Merci


re,

Je pense que tu as du taper dans ta zone de texte un . comme séparateur
décimal d'ou l'erreur 13 Type Mismatch.
Si c'est le cas, passes à la fonction de Jessy la valeur de la zone de
texte retraitée par un Replace()
du genre :
Label2.Caption = ConvertNbLettres(Replace(Texte0, ".", ","), "€uro")

(A adapter en fonction de ton séparateur décimal)

--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric








Avatar
Eric
re,

Dans la fonction de Jessy, les variables ne sont pas typées, exceptées
la devise et la valeur retournée par la fonction, donc sont des Variant
qui acceptent tous types de données. Il n'y a donc pas de raison que ca
ne marche pas avec du Currency.

Je ne connais pas ton séparateur décimal. Le moyen le plus simple pour
savoir si ca fonctionne correctement est de tester sans puis avec la
fonction Replace(). Au vu des résulats choisir la formule la plus simple.

Dans mon environnement, le séparateur est la virgule donc sans ou avec
la fonction Replace() ca marche puisqu'en monétaire(currency) mon
séparateur est la virgule.

Ok?

--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Re bonjour Eric,

Sorry pour mon dernier post, j'ai trouvé ce qui clochait.

par contre maitnenant, j'aimerais appliquer cette fonction à des factures.
Seulement voila:
le nombre à convertir est en format "currency" (normal sur une facture)..

Est-ce que la partie "replace" pourrait solutionner ceal?

D'avance merci

Frédéric

"fth" wrote:


Re,
oups...
je vérifie cela

maintenant, c'est à txtlabel.caption etc..
que j'ai une erreur

décidement ...

NB: Je ne saisis pas bien ta dernière modification ...
Merci



re,

Je pense que tu as du taper dans ta zone de texte un . comme séparateur
décimal d'ou l'erreur 13 Type Mismatch.
Si c'est le cas, passes à la fonction de Jessy la valeur de la zone de
texte retraitée par un Replace()
du genre :
Label2.Caption = ConvertNbLettres(Replace(Texte0, ".", ","), "€uro")

(A adapter en fonction de ton séparateur décimal)

--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric










Avatar
fth
ok
et encore merci pour le coup de pouce.

tiens, dans un rpécedent post, je parlais d'une fonction pour ajouter un
path et un nom de fichier dans des champs séparés basé sur une recherche sur
disque dur.
J'essaie sur base d'un apth réseau mais ça ne semble pas fonctionner.
Est-ce qu'il y a une modif à faire dans Application.FileSearch pour fair
eune recherche genre ( monservermesrepertoires ...)

D'avance RE merci bcp,

Frédéric

"Eric" wrote:

re,

Dans la fonction de Jessy, les variables ne sont pas typées, exceptées
la devise et la valeur retournée par la fonction, donc sont des Variant
qui acceptent tous types de données. Il n'y a donc pas de raison que ca
ne marche pas avec du Currency.

Je ne connais pas ton séparateur décimal. Le moyen le plus simple pour
savoir si ca fonctionne correctement est de tester sans puis avec la
fonction Replace(). Au vu des résulats choisir la formule la plus simple.

Dans mon environnement, le séparateur est la virgule donc sans ou avec
la fonction Replace() ca marche puisqu'en monétaire(currency) mon
séparateur est la virgule.

Ok?

--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Re bonjour Eric,

Sorry pour mon dernier post, j'ai trouvé ce qui clochait.

par contre maitnenant, j'aimerais appliquer cette fonction à des factures.
Seulement voila:
le nombre à convertir est en format "currency" (normal sur une facture)..

Est-ce que la partie "replace" pourrait solutionner ceal?

D'avance merci

Frédéric

"fth" wrote:


Re,
oups...
je vérifie cela

maintenant, c'est à txtlabel.caption etc..
que j'ai une erreur

décidement ...

NB: Je ne saisis pas bien ta dernière modification ...
Merci



re,

Je pense que tu as du taper dans ta zone de texte un . comme séparateur
décimal d'ou l'erreur 13 Type Mismatch.
Si c'est le cas, passes à la fonction de Jessy la valeur de la zone de
texte retraitée par un Replace()
du genre :
Label2.Caption = ConvertNbLettres(Replace(Texte0, ".", ","), "€uro")

(A adapter en fonction de ton séparateur décimal)

--
A+
Eric
http://users.skynet.be/mpfa/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr


Bonjour,
j'ai découvert une fonction pour transformer un nombre en lettre
(http://access.jessy.free.fr/)

j'a iun form avec une zone txtnbr et l'appelle de la proc sur event click
lostfocus
j'ai toutefois un soucis à l'endroit suivant:

'traitement des millions
varnum = Int(Nb / 1000000)
If varnum > 0 Then
GoSub centaine_dizaine
resultat = varlet + " million"
If varlet <> "un" Then: resultat = resultat + "s"
End If

..et pour toute la partie simmilaire (dizaine, milleir).

j'utilise access2003.

Quelqu'un a t'il déja utilisé cette fonction ou résolu ce type de probleme?
le message d'erreur est le suivant:
Type mismatch.

d'avance merci

Frédéric