IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Besoins de testeurs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut Besoins de testeurs
    Bonjour a tous

    j'ai proposé il y a un moment de cela, une fonction assez compact qui avais pour but de convertir les nombres en toutes lettres en Français dans les contributions .

    après plusieurs tests par divers membres certaines petites coquilles avaent fait leur apparition ,celles ci avait été corrigées

    j'ai eu envie de faire la même chose mais en anglais

    il faut maintenant la tester dans tout les sens

    j'ai un soucis avec l'array des mesures
    en effet la traduction des unités( mille,milliard,ect....) me parait bizarre sur ggogle translate si quelqu'un connait la traduction de sur!!
    je prends

    un exemple de bizarerie milliard se dit billion en anglais sauf que billion est l'unité de mesure supérieure a milliard en Français

    maintenant testons avec une formule

    exemple

    =SI(A2<>0;Nombres_En_Lettres_US(A2;"Dollar");"")
    testons en VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
        Debug.Print Nombres_En_Lettres_US(5381236.34, "Dollar")
        Debug.Print Nombres_En_Lettres_US(1, "Dollar")
        Debug.Print Nombres_En_Lettres_US(101, "Dollar")
        Debug.Print Nombres_En_Lettres_US(312)
        Debug.Print Nombres_En_Lettres_US(1536.108)
        Debug.Print Nombres_En_Lettres_US(338.246)
        Debug.Print Nombres_En_Lettres_US(999999, "Dollar")
        Debug.Print Nombres_En_Lettres_US(312.36, "Dollar")
        Debug.Print Nombres_En_Lettres_US(1000000000, "Dollar")
        Debug.Print Nombres_En_Lettres_US(1000000338, "Dollar")
    End Sub
    et enfin la fonction
    j'ai relativement simplifié par rapport a la version française (certaines nuances gramaticales de notre chere langue n'existe pas en anglais). j'ai même pas eu besoins de la recursivité
    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
     
    Option Explicit
     
    Public Function Nombres_En_Lettres_US(Nombre As String, Optional monaie As String = ",")
        Dim Unit1, Unit10, Ms, dec, i#, x#, a#, N1$, N2$, N3$, NinT, Part$, NbL$, tabl, N#, T#, unité$
        Unit1 = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Height", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Heighteen", "Nineteen")
        Unit10 = Array("", "Ten", "Twenty", "Thirty", "Forty", "Fifty ", "Sixty", "Seventy", "Eighty", "Ninety", "Hundred")
        Ms = Array("", "quadrillion", "trillion", "Billion", "Million", "Thousand", ""):
        dec = Split(Replace(Nombre, ".", ","), ",")
        If UBound(dec) > 0 Then dec(1) = Right("00" & Round(Val("0." & dec(1)), 2) * 100, 3)
        If monaie = "," And UBound(dec) = 0 Then monaie = ""
        monaie = IIf(monaie <> "," And monaie <> "" And Val(dec(0)) > 1, monaie & "s", monaie)
        For i = 0 To UBound(dec)
            If Len(dec(i)) Mod 3 <> 0 Then dec(i) = Application.Rept("0", 3 - Len(dec(i)) Mod 3) & dec(i)
            For N = 1 To Len(dec(i)) Step 3
                Part = Mid(dec(i), N, 3):
     
                N1 = Val(Mid(Part, 1, 1)): N2 = Mid(Part, 2, 1): N3 = Mid(Part, 3, 1): NinT = Mid(Part, 2, 2)
                If NinT > 10 And NinT < 20 Then N2 = 0: N3 = N3 + 10
                NbL = NbL & Unit1(N1) & IIf(N1 <> 0, " hundred ", "")
                NbL = NbL & Unit10(N2) & IIf(N3 <> 0 And N2 <> 0, "-", IIf(Left(Part, 2) = "10" And N3 = 1, " and ", " "))
                NbL = NbL & Unit1(N3) & " "
                NbL = NbL & Chr(1)
            Next
            If i = 0 Then
                tabl = Split(NbL, Chr(1))
                a = UBound(Ms) - UBound(tabl) + 1
                For T = 0 To UBound(tabl) - 1
                    If Trim(tabl(T)) <> "" Then unité = Ms(a + x) Else unité = ""
                    tabl(T) = tabl(T) & unité & IIf(unité <> "" And Trim(tabl(T)) <> "One" And tabl(T) <> "", "s", "")
                    x = x + 1
                Next
                NbL = Join(tabl, " ") & monaie
                NbL = NbL & IIf(UBound(dec) > 0 And monaie <> ",", " & ", "")
            End If
        Next
        Nombres_En_Lettres_US = Trim(Replace(Replace(NbL, "   ", ""), "  ", " "))
    End Function
    voila testez et donnez moi les coquilles si il y a
    merci a tous ceux qui voudrons bien tester
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Variable non définie sur For n = 1 To Len(dec(i)) Step 3 et sur For t = 0 To UBound(tabl) - 1:

    Tu n'as pas rendu Option Explicit obligatoire dans les options VBE? Tu me fais vraiment peur, là!!. Comment arrives-tu à coder sans ça?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    Bonjour pierre
    oui effectivement variable N et T non déclarée
    correction dans le post 1

    non il faut pas avoir peur je le fait en general a la fin quand mon principe est validé car tres souvent le faisant avant je me retrouve avec des variables qui servent plus a rien
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Cela étant, je l'ai testée. Je ne suis pas un as en anglais, mais ça donne bien

    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re
    oui j'en ai trouvé une de coquille il fallait pas aller chercher bien loin
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print Nombres_En_Lettres_US(101, "Dollar")
    One hundred One Dollar
    le"s" a "dollar"
    il m'a échappé celui la
    je cherche a corriger et reviens
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    corrigé dans le post 1

    ma question sur l'array ms reste toujours d'actualité
    a savoir le même en anglais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ms = Array("", " sextillion", " Quintillion", " Quatrillion", " Trillion", " Billiard", " Billion", " milliard", " million", " mille", "")
    pour vous donner un aperçu de mon désarroi concernant cette traduction
    Nom : Capture.JPG
Affichages : 329
Taille : 127,1 Ko
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Coucou Patrick,

    j'ai testé sur mon Mac, je viens de trouvé une coquille
    One Billionss Millions Thousands Dollars ne devrait pas être one billion million thousand Dollars
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Debug.Print Nombres_En_Lettres_US(1000000000, "Dollar")
    en tout cas il y a un s en trop pour le reste vérifie bien
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  8. #8
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Patrick
    il faut toujours avoir les deux pieds sur le même navire -->>
    ou tu utilises l'anglais, ou tu utilises l'américain.
    "one hundred one" n'est pas anglais, mais américain. C'est "one hundred and one", en anglais.
    Mais si tu choisis entre anglais et américain, tout le reste doit alors correspondre au choix fait. Et aucun "panachage" ne serait acceptable.
    Ceci étant dit : je ne crois pas que ce forum soit dédié à l'apprentissage des langues.

    En anglais "britannique" (le classique, pas l'estropié quelquefois à la télévision), on n'écrit pas "one billion", mais "one thousand millions" et "one billion" = 1 000 000 000 000 et non 1 000 000 000

    EDIT : et c'est loin (très loin) d'être tout, y compris dans le seul choix de l'anglais UK.

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    J'ajoute ceci, Patrick
    Il y a plus d'un an, je n'ai pas voulu aborder (en plus de tout le reste) une question pourtant primordiale : celle des usages admis en matière d'échelle courte et d'échelle longue, notamment en ce qui concerne la plupart des pays de l'UE (d'autres points me paraissaient plus importants et n'ont pas été non plus traités).
    Mais voilà : tu vas devoir maintenant (tu ne pourras pas l'éviter) te mettre également à l'étude de cet aspect (échelle courte ou échelle longue). Et ce sera cette fois-ci d'autant indispensable que des différences significatives existent à ce propos entre les usages britanniques et les usages américains, mais également entre la signification donnée à certains élément de l'échelle courte d'un côté et de l'autre de l'A1tlantique. A ne pas t'y mettre, ta transposition en toutes lettres pourra prêter à de très curieuses confusions.
    Pour résumer et être très clair : commence par cette étude nécessaire (sans préjudice, d'ailleurs, de la nécessité de revoir dans la foulée et pour cette même raison ta transposition en français).
    Bon courage.

  10. #10
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 164
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 164
    Par défaut Besoin de testeurs
    Citation Envoyé par patricktoulon Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Unit1 = Array("", "One", "Two", "Tree") ' <<< ça c'est un arbre
    Voilà, testez et donnezmoi les coquilles s'il y en a.
    Un arbre au lieu de trois, ça la fout mal...


    Citation Envoyé par unparia Voir le message
    Ceci étant dit : je ne crois pas que ce forum soit dédié à l'apprentissage des langues.
    Non, certes, cependant, ceux qui programment les langues et leurs usages, conversions, etc., sont bien obligés d'en respecter les règles, sinon ça devient le foutoir le plus complet, avec des textes incompréhensibles, à contre-sens et tout à l'avenant...

  11. #11
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Jipété
    Tu as raison sur un point :
    ceux qui programment les langues et leurs usages, conversions, etc., sont bien obligés d'en respecter les règles
    la connaissance de ces règles et usages est donc à acquérir préalablement et je ne crois pas qu'un forum de développement informatique soit le lieu adéquat pour assurer efficacement cette acquisition.
    A s'y prendre autrement, on s'expose assurément à du n'importe quoi, à une foultitude de tâtonnements, de tests, de corrections, etc ... le tout inévitablement accompagné d'une foultitude de messages divers et variés.
    Une chose est de connaître sans faille les aboutissants et de tester qu'ils sont bien là (tels qu'arrêtés) en exécution.
    Une autre est de ne pas cerner les aboutissants et d'attendre de les établir en fonction de réactions générés par des tests.

    C'est simple.

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    correction dans le post 1
    j'ai enlevé la forêt sinon Jipété va "pété" trop fort

    101 le "and" j'ajouterai un paramètre injectable après (eng/US)

    les unité sans nombre
    one billion million thousand etc....

    coquille(s) SVP

    @jacques
    En anglais "britannique" (le classique, pas l'estropié quelquefois à la télévision), on n'écrit pas "one billion", mais "one thousand millions" et "one billion" = 1 000 000 000 000 et non 1 000 000 000
    c'est bien la ou la difficulté (trouver une source qui traduise correctement) car si je m'en réfère a ce que tu dis la traduction de milliard/billion sur tout les sites de traduction est fausse
    apres oui "thousand millions" correspond a milliard ca c'est incontestable

    billion" = 1 000 000 000 000 oui en Français !!!car billion est la tranche supérieure a milliard

    mais en anglais milliard se traduit "billion" va savoir pourquoi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    mais en anglais milliard se traduit "billion" va savoir pourquoi
    Ah !
    Et les Britanniques se demandent pourquoi "billion" se traduit en français par "milliard", hein ...

    D'autant que
    Citation :
    I
    n British English, a billion used to be equivalent to a million million (i.e. 1,000,000,000,000), while in American English it has always equated to a thousand million (i.e. 1,000,000,000). British English has now adopted the American figure, though, so that a billion equals a thousand million in both varieties of English.

    Dis-moi : tu comptes aller où et comment, avec de telles "approches" ?
    J'ose à peine te dire qu'à moins de faire une étude linguistique COMPLETE, tu n'en finiras pas d'ajouter des rustines à tous bouts de champ à l'utilisation de tes arrays, chaque fois qu'un des "testeurs" réellement bilingue te montrera du doigt une erreur de syntaxe, y compris (je le répète et insiste avec force) en arrêtant le choix entre anglais/uk et anglais/usa.
    C'est un chemin que je connais fort bien, crois-moi. Et contrairement à ce que l'on pourrait penser il est au moins aussi malaisé de traduire des nombres en lettres en anglosaxon que ça ne l'est en français.
    Sais-tu seulement, dèjà, ce qui fait qu'ici on met un "a" et là un "one" et non un "a" ?
    Sais-tu quand les Britanniques (pas les américains) forcent le "and" ?
    Sais-tu pourquoi l'on dit One thousand and fourteen pour 1014 alors que l'on dit One thousand one hundred and fourteen pour 1114 ?
    Pour ton info : ce sont là deux exemples parmi les plus "simples", eux ... La liste de ce genre de complication est en réalité très très longue.

    Et je vois que tu ne t'es pas encore intéressé à ce que sont l'échelle courte et l'échelle longue, leur usage et les normes selon les pays, etc ...

    Moi, je vais me contenter de ce que je viens de faire : appeler ton attention sur la nécessité ABSOLUE de commencer par la détermination des aboutissants (la syntaxe dans la langue choisie) AVANT LA MOINDRE TENTATIVE D'ECRIRE DU CODE pour transposer de nombres en lettres.
    Je te laisse là, Patrick.

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je suis assez d'accord avec Jacques sur le fond, et je citerai Sénèque: Il n'y a pas de vent favorable à celui qui ne sait où il va.

    C'est particulièrement vrai en programmation, où il est plus qu'intéressant, voire capital pour la réussite d'un projet, de savoir d'où l'on vient, où l'on va et quelles sont les ressources dont on dispose. Ce n'est qu'ainsi que l'on produit un code propre, stable, maintenable, aisément évolutif.

    Partir d'un code approximatif et le faire évoluer à coup de patchs, de corrections, de rétropédalages, c'est in fine produire... de la merde. Désolé d'être si cru, mais je vois trop souvent de la merde dans mon boulot, c'est-à-dire du code produit à la va-vite, sans réflexion, sans guidelines. Evidemment, c'est moins cher au départ, mais lorsque je dois mettre les mains dans le cambouis des autres et finalement annoncer que moi, je repars de zéro sur du code propre, j'entends les dents grincer...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  15. #15
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Pierre
    Tout-à-fait.
    Ajoutons qu'une transposition de nombres en lettres n'a pratiquement aucun intérêt si la fonction n'est pas paramétrée. Et ce paramétrage lui-même nécessite déjà une réflexion.
    Paramètres nécessaires :
    - la langue utilisée pour la transposition ******
    - le genre des unités (on dit par exemple en français vingt-et-une tonnes et non vingt-et-un tonnes
    - le genre des décimales (pour les mêmes raisons)
    - le nom des unités au singulier
    - le nom des unités au pluriel (n'est pas forcément simplement l'ajout d'un "s" au nom au singulier !)
    - le nom des décimale au singulier
    - le nom des décimales au pluriel (n'est pas forcément simplement l'ajout d'un "s" au nom au singulier !)

    ******. Dans certains cas assez particuliers (certains contrats, traités bi ou multilatéraux, etc ...) la langue seule ne suffit pas et doit être complétée par des paramètres relatifs aux normes du pays de langue Y où doit être produit un document écrit en langue X. Cela est rarement (mais arrive) le cas de transpositions de montants dans une monnaie M. C'est beaucoup moins rare lorsqu'il ne s'agit pas de montants, mais de mesures, de quantités ...
    Je sais que ce dernier "niveau" n'est pas celui d'une nécessité habituelle. Il n'en va pas de même en ce qui concerne les autres (au-dessus) paramètres.
    A ne pas inclure ces paramètres (ceux du 1er paragraphe au moins) on a une fonction qui ne "colle" pas toujours à la pratique et retourne donc quelquefois des résultats maladroits.
    Amitiés

  16. #16
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 684
    Par défaut
    Salut,

    au dela de ce qui me semble est une reinvention de la roue, tu peux checker tes resultats avec
    https://www.calculatorsoup.com/calcu...e&action=solve

    Et 1 billion c'est 1 milliard en anglais
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  17. #17
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour à tous
    Pour augmenter l’utilité de ce super travail du super Patrick, à mon modeste avis, il est pertinent d’ajouter le choix de devise : Euros ou dollars qui est une mission impossible pour un débutant comme moi

  18. #18
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Jean-Philippe André
    Ton lien traite de la conversion en anglais/USA
    Et du coup, 101 dollars y est traduit en "one hundred one dollars" (le and de l'anglais/UK a disparrouuuu)

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    bonjour
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    au dela de ce qui me semble est une reinvention de la roue, tu peux checker tes resultats avec
    https://www.calculatorsoup.com/calcu...e&action=solve

    Et 1 billion c'est 1 milliard en anglais
    oui et 1 billion en Français c'est mille milliards en anglais
    Français unité , mille ,million, milliard, billion, trillion, etc.....
    anglais unité, thousand ,million, billion, trillion, quadrillion, etc.....

    jacques si tu veux bien on va bloquer celle ci au normes américaines
    j'en ferait une autre en britannique (UK)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  20. #20
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    jacques si tu veux bien on va bloquer celle ci au normes américaines
    Ah ! Anglais/usa, hein ...
    Et cette transposition adaptée à la rédaction de quoi ?
    Car rédactions différentes selon le document. Même s'agissant d'unités monétaires (et pas d'autres unités) la rédaction d'un nombre en toutes lettres ne répond pas, aux USA, aux mêmes règles selon qu'il s'agit d'un chèque ou d'un autre document !
    Et ce n'est pas tout

    PS : et je n'ose pas revenir avec ce à quoi j'ai déjà fait allusion plus haut, à savoir la langue de rédaction et les règles de rédaction différentes du pays (utilisant ou acceptant une rédaction dans cette langue) dans lequel le document est à produire.
    Imagine simplement que tu doives libeller depuis la France en anglais/usa un chèque en dollars américains destiné à être présenté à une banque australienne (par exemple et entre autres ).

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2008, 17h26
  2. Besoin de testeur pour le Système de GCL PERFORCE
    Par Marc Lussac dans le forum Evolutions du club
    Réponses: 1
    Dernier message: 20/04/2006, 17h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo