Bonjour chers tous,
Je m'exerce sous access 2003.
je voudrai à travers une requête convertir 19/05/2019 en dix neuf mai deux mille dix neuf) et une heure de format 11:30 en onze heures trente minutes.
Cordialement.
Bonjour chers tous,
Je m'exerce sous access 2003.
je voudrai à travers une requête convertir 19/05/2019 en dix neuf mai deux mille dix neuf) et une heure de format 11:30 en onze heures trente minutes.
Cordialement.
un debut de piste....
https://www.developpez.net/forums/d1...iffre-lettres/
Bonjour à tous,
je complèterais par l'utilisation de la fonction format pour récupérer le jour et l'année en chiffres et le mois en lettres, puis convertir le jour et année en lettres avec la fonction Nb2Mot$ donnée dans le lien.
Même chose utilisation de la fonction Format pour récupérer les heures et les minutes.
Note : comme le signale Claude dans ce message pour "quatre-vingt-dix", il y a aussi un souci avec "dix-neuf":
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part Nb2Mot$ = Résultat$
Code : Sélectionner tout - Visualiser dans une fenêtre à part Nb2Mot$ = Replace(Replace(Résultat$, "quatre-vingts-dix", "quatre-vingt-dix"), "dix-neufs", "dix-neuf")
Il faut aussi supprimer la ligne 'Ajoute "euro" ..., pour ôter le terme "euro" à la fin...
Cdlt,
B
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Salut,
J'utilise cette fonction depuis 2003 et je n'ai jamais eu de problèmes avec les "s"
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135 Public Function ConvertNbLettres(Nb, Devise As String) As String Dim varnum, varnumD, varnumU, resultat, varlet Static Chiffre(1 To 19) Chiffre(1) = "un" Chiffre(2) = "deux" Chiffre(3) = "trois" Chiffre(4) = "quatre" Chiffre(5) = "cinq" Chiffre(6) = "six" Chiffre(7) = "sept" Chiffre(8) = "huit" Chiffre(9) = "neuf" Chiffre(10) = "dix" Chiffre(11) = "onze" Chiffre(12) = "douze" Chiffre(13) = "treize" Chiffre(14) = "quatorze" Chiffre(15) = "quinze" Chiffre(16) = "seize" Chiffre(17) = "dix-sept" Chiffre(18) = "dix-huit" Chiffre(19) = "dix-neuf" Static dizaine(1 To 8) dizaine(1) = "dix" dizaine(2) = "vingt" dizaine(3) = "trente" dizaine(4) = "quarante" dizaine(5) = "cinquante" dizaine(6) = "soixante" dizaine(8) = "quatre-vingt" 'traitement du cas 0 If Nb >= 1 Then resultat = "" Else resultat = "zéro" GoTo fintraitementdevise End If '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 'traitement des milliers varnum = Int(Nb) Mod 1000000 varnum = Int(varnum / 1000) If varnum > 0 Then GoSub centaine_dizaine If varlet <> "un" Then: resultat = resultat + " " + varlet resultat = resultat + " mille" End If 'traitement des centaines et dizaines varnum = Int(Nb) Mod 1000 If varnum > 0 Then GoSub centaine_dizaine resultat = resultat + " " + varlet End If resultat = LTrim(resultat) varlet = Right$(resultat, 4) 'traitement du "s" final pour vingt et cent et du "de" pour million Select Case varlet Case "cent", "ingt" resultat = resultat + "s" Case "lion", "ions" resultat = resultat + " de" End Select fintraitementdevise: 'resultat = resultat + "" + Devise 'If Nb > 2 Then: resultat = resultat + "s" resultat = resultat ' + "" + Devise If Nb > 2 Then: resultat = resultat 'traitement des centimes varnum = Int((Nb - Int(Nb)) * 100 + 0.5) If varnum > 0 Then GoSub centaine_dizaine resultat = resultat + " et " + varlet + " centime" If varnum > 1 Then: resultat = resultat + "s" End If 'conversion 1ère lettre en majuscule resultat = UCase(Left(resultat, 1)) + Right(resultat, Len(resultat) - 1) 'renvoi du resultat de la fonction et fin de la fonction ConvertNbLettres = resultat Exit Function 'sous programme centaine_dizaine: varlet = "" 'traitement des centaines If varnum >= 100 Then varlet = Chiffre(Int(varnum / 100)) varnum = varnum Mod 100 If varlet = "un" Then varlet = "cent " Else varlet = varlet + " cent " End If End If 'traitement des dizaines If varnum <= 19 Then If varnum > 0 Then: varlet = varlet + Chiffre(varnum) Else varnumD = Int(varnum / 10) varnumU = varnum Mod 10 Select Case varnumD Case Is <= 5 varlet = varlet + dizaine(varnumD) Case 6, 7 varlet = varlet + dizaine(6) Case 8, 9 varlet = varlet + dizaine(8) End Select If varnumU = 1 And varnumD < 8 Then varlet = varlet + " et " Else If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then: varlet = varlet + " " End If If varnumD = 7 Or varnumD = 9 Then: varnumU = varnumU + 10 If varnumU <> 0 Then: varlet = varlet + Chiffre(varnumU) End If varlet = RTrim(varlet) Return End Function
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
Salut Hyperion,
Il n'y a pas mention de devise dans sa demande.
Cdlt,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ? ConvertNbLettres("120","") Cent vingts s
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Désolé,
Il faut corriger L75 et L76 en L77 et L78
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ? ConvertNbLettres(80091.91, "euro") Quatre-vingt mille quatre-vingt onze euros et quatre-vingt onze centimes ? ConvertNbLettres(80091.91, "") Quatre-vingt mille quatre-vingt onze s et quatre-vingt onze centimes
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
Je ne suis pas un expert en orthographe, mais pour 90 ça donne :
C'est pas plutôt Quatre-vingt-dix avec un tiret devant le dix ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ? ConvertNbLettres(90,"") Quatre-vingt dix
Vous trouverez dans la FAQ, les sources ou les tutoriels, de l'information accessible au plus grand nombre, plein de bonnes choses à consulter sans modération
Des tutoriels pour apprendre à créer des formulaires de planning dans vos applications Access :
Gestion sur un planning des présences et des absences des employés
Gestion des rendez-vous sur un calendrier mensuel
Importer un fichier JSON dans une base de données Access :
Import Fichier JSON
Effectivement
"Le savoir est la seule matière qui s'accroit quand on la partage" (Socrate)
UR - ESIROI - GPME/CG/DCG8
QTH :21°19'18"S - 055°25'32"E
Inutile de me contacter par MP
Merci de cliquer sur si la réponse vous a permis de résoudre votre problème et n'oubliez pas de clôturer le fil en cliquant sur
Merci à James68 de m'avoir répondu promptement mais mon problème est tout autre et je pense que je ne me suis bien expliqué.
Dans ma table access, j'ai un champ nommé Dates avec un type de données Date/Heure et en format et masque de saisie Heure, abrégé. Ce qui donne en résultat ceci 12:30
C'est ce résultat que je voudrais convertir en toutes lettres comme ceci douze heures trente minutes.
Merci
eh bien tu décomposes 12:30 en deux entiers numériques que tu convertit ensuite en texte grâce aux fonctions déjà cité plus haut.
un exemple....
Désolé pas trop le temps en raison du boulot...
Tout ceci est en mode Brut...il faut encore tester les boucles et affiner .
Le code pour traiter le 00h00 et le convertir en "Minuit" n'est pas traiter !!!!...
A plus
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager