Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/05/2008, 14h30   #1
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
Par défaut requete calcul d'un chiffre d'affaire mensuel

Bonjour ,
comme indiqué dans le sujet j'ai etabli une requete qui me calcul le chiffre d'affaire journalier resultast d'une vente +une livraison , ce qui me reste est une requete qui calcul le chiffre d'affaire mensuel.
Autre chose , dans l'etablisement de ma facture de vente (dans le formulaire ) je voudrais transcrire le total (en chiffres ) en lettres , j'ai trouver le module qui le fait mais pas la procedure a suivre .


Merci par avance
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/05/2008, 22h54   #2
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Bonjour !

Qu'est-ce que tu as trouvé comme module ?

Bernard
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 09h33   #3
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
voici le module
Code :
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
Option Compare Database
 
Dim mot$(25), Résultat$, N$
Dim Virgule, B, K$, nombre$, longueur
Dim cdu$, C$, D$, U$, Et, Tiret
 
 
Sub Ajoute(MotSimple$)
'--- ajoute un nouveau terme traduit à la chaine résultat
If Résultat$ <> "" Then
'--- vérifie s'il est nécessaire de coller le nouveau terme au
'--- précédent dans le cas des "S" à rajouter, ou des tirets
If Right$(Résultat$, 1) = "-" Or _
MotSimple$ = "s" Or MotSimple$ = "-" Then
Résultat$ = Résultat$ + MotSimple$
'--- sinon, ajoute le terme après un espace
Else
Résultat$ = Résultat$ + " " + MotSimple$
End If
Else
Résultat$ = MotSimple$
End If
End Sub
 
 
Function Equivalent$(Valeur)
'--- recherche le mot équivalent à une valeur numérique
Select Case Valeur
Case Is < 21
Equivalent$ = mot$(Valeur)
Case Else
Equivalent$ = mot$(18 + (Valeur / 10))
End Select
End Function
 
 
Function Nb2Mot$(Valeur$)
Dim a$
'--- initialisation du tableau contenant les mots interprétés
mot$(1) = "un"
mot$(2) = "deux"
mot$(3) = "trois"
mot$(4) = "quatre"
mot$(5) = "cinq"
mot$(6) = "six"
mot$(7) = "sept"
mot$(8) = "huit"
mot$(9) = "neuf"
mot$(10) = "dix"
mot$(11) = "onze"
mot$(12) = "douze"
mot$(13) = "treize"
mot$(14) = "quatorze"
mot$(15) = "quinze"
mot$(16) = "seize"
mot$(20) = "vingt"
mot$(21) = "trente"
mot$(22) = "quarante"
mot$(23) = "cinquante"
mot$(24) = "soixante"
'--- récupération de paramètre passé
a$ = Valeur$ + " "
'--- initialisation des variables de travail
N$ = ""
Virgule = 0
Résultat$ = ""
'--- pour toute la longueur de celui-ci
For B = 1 To Len(a$)
'--- on extrait chacun de ses caractères
K$ = Mid$(a$, B, 1)
Select Case K$
'--- gère les montants négatifs
Case "-"
Ajoute "moins"
'--- si ceux-ci sont numériques, on batit la chaine n$
Case "0" To "9"
N$ = N$ + K$
'--- sinon, on teste si on est arrivé à une virgule
Case Else
If Virgule = 1 Then
'--- les centimes sont comptés sur 2 digits, réajustés de
'--- manière inverse aux euros, puisqu'on lit les unités
'--- et dizaines de manière inversée (0,2? = 20c et
'--- 0,02?=2c)
N$ = Right$("000" + Left$(N$ + "000", 2), 2)
If Val(N$) = 0 Then N$ = ""
End If
'--- on traduit le nombre stocké dans n$
TraduireEntier N$
'--- puis on détermine son unité en fonction de la présence
'--- ou non d'une virgule
If Virgule = 0 And Val(N$) > 0 Then
Ajoute "euro"
'--- et on accorde l'unité avec le nombre
If Val(N$) > 1 Then Ajoute "s"
ElseIf Virgule = 1 And Val(N$) > 0 Then
Ajoute "centime"
'--- en ajoutant un "s" si nécessaire
If Val(N$) > 1 Then Ajoute "s"
End If
N$ = ""
Select Case K$
Case Chr$(13)
B = B + 1
Case Is < " "
Case ",", "."
Virgule = 1
'--- si une valeur en euros est exprimée, et que le
'--- nombre de centimes est suffisant pour être traité,
'--- on lie les 2 par le mot "et"
If Val(a$) <> 0 And _
Val("0." + Mid$(a$, B + 1)) >= 0.01 Then Ajoute "et"
Case Else
End Select
End Select
Next
Nb2Mot$ = Résultat$
 
End Function
 
Sub TraduireEntier(NombreATraduire$)
'--- convertit un nombre entier contenu dans une chaine de caractères
'--- en son équivalent ordinal
nombre$ = NombreATraduire$
If nombre$ <> "" Then
'--- si le nombre est 0, on ne perd pas de temps
If Val(nombre$) = 0 Then
Ajoute "zéro"
Else
'--- sinon, on convertit celui-ci en une chaine de caractères
'--- de longueur multiple de 3, afin de pouvoir la lire par blocs
'--- de 3 caractères
nombre$ = Right$("000", -((Len(nombre$) Mod 3) <> 0) * (3 - (Len(nombre$) Mod 3))) _
+ nombre$
For longueur = Len(nombre$) To 3 Step -3
cdu$ = Left$(nombre$, 3)
nombre$ = Right$(nombre$, longueur - 3)
'--- on extrait ainsi des ensembles de 3 chiffres, de la
'--- gauche vers la droite
If cdu$ <> "000" Then
'--- dont on tire une valeur de centaines, dizaines et
'--- unités
C$ = Left$(cdu$, 1)
D$ = Mid$(cdu$, 2, 1)
U$ = Right$(cdu$, 1)
'--- on convertit les unités non muettes pour les
'--- centaines
If C$ >= "2" Then Ajoute Equivalent$(Val(C$))
'--- et on traite les 1 muets
If C$ >= "1" Then
Ajoute "cent"
'--- en appliquant les règles d'accords pour les
'--- centaines
If Val(nombre$) = 0 And D$ + U$ = "00" _
And Len(Résultat$) > 4 Then Ajoute "s"
End If
'--- on analyse si le mot ET est nécessaire (21, 31,
'--- 41 ...)
Et = (D$ >= "2") And (U$ = "1")
'--- ainsi que les tirets pour certains couples
'--- dizaines-unités
Tiret = ((D$ >= "2") And (U$ > "1") _
Or (D$ >= "1" And U$ >= "7")) And Not Et
'--- traitement des valeurs 80-99
If D$ >= "8" Then
Ajoute "quatre-vingt"
Et = 0
'--- retenue nécessaire pour 90 à 99
If D$ = "8" Then D$ = "0" _
Else D$ = "1": Tiret = True
'--- et traitement des unités
If U$ > "0" Then Tiret = True Else Ajoute "s"
'--- sinon on traite les valeurs 70 à 79
ElseIf D$ = "7" Then
Ajoute "soixante"
'--- avec une retenue pour les dizaines
D$ = "1"
If U$ <> "1" Then Tiret = True
End If
'--- valeurs entre 10 et 16
If (D$ = "1") And (U$ <= "6") Then
D$ = "0"
U$ = "1" + U$
End If
'--- sinon, on gère toutes les autres dizaines
If D$ >= "1" Then
'--- gère les tirets pour les dizaines composées
If Tiret And D$ = "1" _
And Val(Right$(cdu$, 2)) > 19 Then
Ajoute "-"
End If
'--- traduction de la dizaine...
Ajoute Equivalent$(Val(D$ + "0"))
'--- en accordant l'exception des vingtaines
If D$ + U$ = "20" And C$ <> "0" Then Ajoute "s"
End If
'--- si le mot Et est nécessaire, on l'ajoute
If Et Then Ajoute "et"
'--- ainsi que le tiret, liant une dizaine et une
'--- unité
If Tiret Then Ajoute "-"
'--- puis on traduit l'unité du nombre
If Val(U$) >= 22 Or ((Val(U$) >= 1 And (Val(cdu$) > 1 Or longueur <> 6))) Then 
Ajoute Equivalent$(Val(U$))
End If
'--- enfin, la pondération du nombre est respectée,
'--- en ajoutant le multiple nécessaire, et en
'--- l'accordant s'il le faut
Select Case longueur
Case 6: Ajoute "mille"
Case 9: Ajoute "million"
If Val(cdu$) > 1 Then Ajoute "s"
Case 12
Ajoute "milliard"
If Val(cdu$) > 1 Then Ajoute "s"
Case Else
End Select
End If
Next
End If
End If
End Sub
il y'en d'autre mais pas aussi complet que celui ci
merci
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 09h40   #4
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
encore autre chose j'ai aussi d'autre probleme avec mon logiciel conception perso en access 2003 ,comme stockage etd estockage automatique ,si mon fichier pourrais vous aider a mieux voir je le zip et je l'envoi
merci par avance
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 19h57   #5
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Ok !

Alors, tu ouvres le formulaire dont tu parles dans ton premier post et tu colles dans le code VBA de ton formulaire, le code que tu as collé ici.

Ensuite, pour démontrer l'utilisation :
Un control dans lequel j'inscris un chiffre sous la forme : 123.45 et que je nomme : "Chiffre"
Un control où s'affichera le chiffre sous la forme littéraire : "cent vingt-trois euros et quarante-cinq centimes", nommé : "Traduction"
Un bouton (pour lancer la fonction) que je nomme : "cmdTraduire"

... et voici le code pour que le nombre inscrit dans "Chiffre" s'inscrive dans "Traduction":
Code :
1
2
3
Private Sub cmdTraduire_Click()
    Me.Traduction = Nb2Mot$(Me.Chiffre)
End Sub
Voilà, j'espère que c'est assez clair ?
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/05/2008, 22h42   #6
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
merci pour votre reponse , mais je pense que je dois bloquer quelque part car je ne connais rien en VBA et plus mettre code et inserer code puis je ne suis plus desolé mais peut etre que demain je verrais plus clair
ci joint le modele de facture
Fichiers attachés
Type de fichier : rar fact.rar (6,9 Ko, 9 affichages)
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2008, 00h16   #7
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Le mieux est de compresser ta base puis la joindre à ta prochaine réponse, je regarderai demain ce que je peux faire...
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2008, 23h14   #8
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
Merci pour tous,
ma base compressé est de presque 1Mo donc elle ne passe pas .
Voici un endroit ou vous pourrez la recuperer n'en riez pas je suis un novice dans le develloppemnet c'est pour detendre l'atmosphere que je dis ca
et un grand merci a vous
http://fr.swoopshare.com/file/bbc846...+2008.rar.html
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 09h37   #9
Membre Expert
 
Avatar de Renardo
 
Renald Chauvet
Inscription : avril 2006
Messages : 1 581
Détails du profil
Informations personnelles :
Nom : Renald Chauvet
Âge : 48

Informations forums :
Inscription : avril 2006
Messages : 1 581
Points : 1 750
Points : 1 750
Bonjour
je te joint un petit exemple relativement simple en reprenant l'idée de Bernardmichel
Renardo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2008, 23h54   #10
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
merci du petit exemple , mais mon grand souci est comment pourrais utiliser le module d conversion afin que mon total en chiifre passe en lettres , ou faut il introduir se module et comment faire pour qu'il soit executer automatiquement une le total calculé
d'autres soucis a vous poser une fois celui ci terminé merci en core une autre fois
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2008, 12h28   #11
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Bonjour,

Pour suivre le principe général des controls de ton formulaire, je t'ai concocté - sur la base du code que tu as déposé plus haut - une petite fonction que tu pourras utiliser, autant dans un formulaire que dans un état (impressions des factures)

Pour cela, je te joins un fichier "txt" dont il te faudra coller le contenu dans un nouveau module que tu vas créer (et que tu nommeras comme tu le désires)

Ensuite, dans la "Source contrôle" de ton control "Texte36", tu colleras la formule suivante :
Code :
=NbAChiffre([texte33]+[texte32])
"NbAChiffre" étant le nom de la nouvelle fonction (Public Function) que tu pourras utiliser, soit dans un état, soit dans une requête.

Voilà, j'espère que c'est cela que tu désires.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 23h22   #12
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
Encore une autre fois merci
j'ai suivi le raisonnemnet et je vous renvoi le resultat sous forme d'une image 'ce que je vois a l'ecran )cordialement
Fichiers attachés
Type de fichier : rar Nouveau Image bitmap.rar (48,1 Ko, 4 affichages)
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 08h22   #13
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Bonjour

Cette erreur est produite car il manque une référence à VBA pour reconnaître "Mid"

Va voir si la référence "Microsoft Forms 2.0 Object Library" est cochée, je pense qu'il s'agit de celle-ci (sans garantie...)
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 09h30   #14
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
Bonjour ,
a quel niveau faut il voir , j'ai vu sur la liste des activex elle n'y figure pas
merci
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 09h48   #15
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Hello !

Tu ouvres la fenêtre VBA (Microsoft Visual Basic) et tu cliques sur le menu "Outils" puis "références". Tout d'abord tu contrôle que cette référence n'est pas déjà cochée et, cas échéant, tu va la retrouver dans la liste alphabétique qui t'es proposée.
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 11h24   #16
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
rebonjour,
microsoft forms ..... n'existe pas sur ma liste comment poourrais je l'ajouter ?
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 20h00   #17
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Hello !

Normalement, elle se trouve là :

C:\Windows\system32\FM20.DLL donc, si elle ne t'es pas proposée automatiquement (..), tu procèdes ainsi :
1. Tu affiches la fenêtre Microsoft Visual Basic
2. Tu ouvres le menu "Outils" et tu sélectionnes l'option "Références"
3. Tu cliques sur le bouton "Parcourir"
4. Tu recherches le fichier mentionné ci-dessus
5. Tu cliques sur le bouton "Ouvrir"
... et normalement tout doit rentrer dans l'ordre...
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2008, 21h42   #18
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
bonsoir,
comme vous l'avez dit la procedure a ete suivi et le resultat est toujours le meme voici une image en pices jointe
Desolé de vous importuner a vec ca mais je veut tellement realiser ce petit logiciel perso et cela depuis si longtemps
merci encore
Fichiers attachés
Type de fichier : rar resultat.rar (20,2 Ko, 4 affichages)
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2008, 07h16   #19
Membre Expert
 
Avatar de bernardmichel
 
Inscription : janvier 2004
Messages : 985
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 985
Points : 1 028
Points : 1 028
Envoyer un message via MSN à bernardmichel Envoyer un message via Skype™ à bernardmichel
Bonjour,

Voici en pièce attachée, le formulaire "Facture" (ainsi qu'un petit formulaire de test) avec la fonction dont je te parle plus haut.

A toi de voir si cela convient
bernardmichel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2008, 17h14   #20
Invité régulier
 
Inscription : novembre 2006
Messages : 38
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 38
Points : 6
Points : 6
Bonjour,
enfin mon problme est resolu .
je vous remerci vivement pour tous et surtout pour le temps que vous m'avez aloué
grand Merci
chahnou est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h53.


 
 
 
 
Partenaires

Hébergement Web