Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

macro-commande

4 réponses
Avatar
Diddle47252
Bonsoir à tous,
j'ai réussi à trouver sur Internet le code permettant de transformer un
montant en texte (ex : 17,75 ? = dix-sept euros soixante-quinze cents). Ce
code se trouve dans un fichier avec une extension .xla que je suis obliger
d'installer sur mon disque dur à c:\\document ans
setting\utilisateur\microsoft\office\macros complémentaires (de mémoire)
afin que la formule "=convnbenlettres()" puisse tourner. Ce que je
souhaiterais c'est que ce code fonctionne sur n'importe quel ordinateur sans
que j'ai besoin à nouveau d'installer ledit fichier ? En d'autres termes je
désirerais que l'utilisateur lambda puisse ouvrir son classeur depuis son
poste informatique sans avoir à faire d'installation dans "macros
complémentaires" !
Merci pour vos réflexions et éventuelles solutions.

4 réponses

Avatar
Philippe.R
Bonsoir,

Tu copies le code qui suit dans un module ordinaire du classeur que tu veux
distribuer et tu utilises cette fonction au lieu de l'autre :

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

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/web/mpfe
News://news.microsoft.com/microsoft.public.fr.excel
"Diddle47252" a écrit dans le message de
news:
Bonsoir à tous,
j'ai réussi à trouver sur Internet le code permettant de transformer un
montant en texte (ex : 17,75 ? = dix-sept euros soixante-quinze cents). Ce
code se trouve dans un fichier avec une extension .xla que je suis obliger
d'installer sur mon disque dur à c:document ans
settingutilisateurmicrosoftofficemacros complémentaires (de mémoire)
afin que la formule "=convnbenlettres()" puisse tourner. Ce que je
souhaiterais c'est que ce code fonctionne sur n'importe quel ordinateur
sans que j'ai besoin à nouveau d'installer ledit fichier ? En d'autres
termes je désirerais que l'utilisateur lambda puisse ouvrir son classeur
depuis son poste informatique sans avoir à faire d'installation dans
"macros complémentaires" !
Merci pour vos réflexions et éventuelles solutions.



Avatar
Daniel.C
Bonsoir.
Que la personne responsable de la maintenance des postes passe avec un
classeur contenant la macro suivante, pris dans l'aide VBA. C'est à
faire une fois pour toute.

Sub UseAddIn()

Set myAddIn = AddIns.Add(Filename:="A:MYADDIN.XLA", _
CopyFile:=True)
MsgBox myAddIn.Title & " has been added to the list"

End Sub

A noter que dans cet exemple, le fichier est sur disquette...


Bonsoir à tous,
j'ai réussi à trouver sur Internet le code permettant de transformer un
montant en texte (ex : 17,75 ? = dix-sept euros soixante-quinze cents). Ce
code se trouve dans un fichier avec une extension .xla que je suis obliger
d'installer sur mon disque dur à c:document ans
settingutilisateurmicrosoftofficemacros complémentaires (de mémoire) afin
que la formule "=convnbenlettres()" puisse tourner. Ce que je souhaiterais
c'est que ce code fonctionne sur n'importe quel ordinateur sans que j'ai
besoin à nouveau d'installer ledit fichier ? En d'autres termes je désirerais
que l'utilisateur lambda puisse ouvrir son classeur depuis son poste
informatique sans avoir à faire d'installation dans "macros complémentaires"
!
Merci pour vos réflexions et éventuelles solutions.


Avatar
michdenis
Bonjour,

Si tu lis l'anglais, il y a ce site :

http://www.excelguru.ca/node/45





"Diddle47252" a écrit dans le message de
groupe de discussion :
Bonsoir à tous,
j'ai réussi à trouver sur Internet le code permettant de transformer un
montant en texte (ex : 17,75 ? = dix-sept euros soixante-quinze cents). Ce
code se trouve dans un fichier avec une extension .xla que je suis obliger
d'installer sur mon disque dur à c:document ans
settingutilisateurmicrosoftofficemacros complémentaires (de mémoire)
afin que la formule "=convnbenlettres()" puisse tourner. Ce que je
souhaiterais c'est que ce code fonctionne sur n'importe quel ordinateur
sans que j'ai besoin à nouveau d'installer ledit fichier ? En d'autres
termes je désirerais que l'utilisateur lambda puisse ouvrir son classeur
depuis son poste informatique sans avoir à faire d'installation dans
"macros complémentaires" !
Merci pour vos réflexions et éventuelles solutions.



Avatar
Diddle47252
Bonsoir, merci c'est super.


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

Bonsoir à tous,
j'ai réussi à trouver sur Internet le code permettant de transformer un
montant en texte (ex : 17,75 ? = dix-sept euros soixante-quinze cents). Ce
code se trouve dans un fichier avec une extension .xla que je suis obliger
d'installer sur mon disque dur à c:document ans
settingutilisateurmicrosoftofficemacros complémentaires (de mémoire)
afin que la formule "=convnbenlettres()" puisse tourner. Ce que je
souhaiterais c'est que ce code fonctionne sur n'importe quel ordinateur
sans que j'ai besoin à nouveau d'installer ledit fichier ? En d'autres
termes je désirerais que l'utilisateur lambda puisse ouvrir son classeur
depuis son poste informatique sans avoir à faire d'installation dans
"macros complémentaires" !
Merci pour vos réflexions et éventuelles solutions.