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

VBA Word Discussion :

Ecrire des chiffres en lettres [WD-2003]


Sujet :

VBA Word

  1. #1
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut Ecrire des chiffres en lettres


    J'ai un petit souci :

    Sur Word je récupère des données depuis Access.
    J'ai un champ en chiffres que je veus mettre en lettres avec le code champ suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {MERGEFIELD « Montant »\*CardText}
    Mais il y a un problème : ça ne tient pas compte des décimales

    729,11 devient sept cent vingt-neuf.
    Il me manque donc les décimales

    de plus, s'il y a moyen d'écrire sept cent vingt-sept euros et onze cts se serrait cool

    Comment faire ???

  2. #2
    Expert confirmé
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Par défaut
    Salut FC31,

    En effet, Word ne prend pas en compte les décimales (dans ce cas) ==>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       { MERGEFIELD « Montant »\*CardText }
    doit s'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       { MERGEFIELD "Montant" \*CardText } euros et {=({ MERGEFIELD "Montant" } - INT({ MERGEFIELD "Montant" }))*100 \* CardText } cts
    J'ai mis le texte en vert, les champs de 1er niveau en orange et les champs inclus dans les champs en rouge pour les mettre en évidence

    @+

  3. #3
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Merci de ta réponse

    J'ai pas essayé encore (je pourrais le faire que demain)

    Mais comment ne pas écrire "cts" si il n'y a pas de décimale
    Et si il n'y a pas de décimal il serrai aussi inutile d'écrire "et"


    Je vais d'abord essayer ton code et je verrais plus tard

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Avec des champs If sur le résultat des décimales.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Expert confirmé
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Par défaut
    Salut FC31,

    N'oublie pas alors de gérer le cas de 1 euro (sans s)

    @+

  6. #6
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Citation Envoyé par Sepia Voir le message
    [code] { MERGEFIELD "Montant" \*CardText } euros et {=({ MERGEFIELD "Montant" } - INT({ MERGEFIELD "Montant" }))*100 \* CardText } cts
    J'ai essayé mais je sais pas pourquoi (peut être parce que je ne maitrise pas les champs dans Word) mais sa marche pas : j'ai du mal faire un truc

    Les champs venant d'une requête d'Access, j'ai rajouté un champ dans la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Expr1: ([Mt_Montant]-Ent(Mt_Montant]))*100
    et insèrer le champ dans Word avec et sa marche.

    J'ai donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      {MERGEFIELD "Mt_Montant"\*CardText} euros et { MERGEFIELD "Expr1"\*CardText } cts
    Par contre si les décimale = "00", j'ai "zéro cts" mais c'est pas grave on ferra avec

    Mais si toutefois, vous auriez la solution avec If sa m'intéresse beaucoup

    Citation Envoyé par Sepia Voir le message
    N'oublie pas alors de gérer le cas de 1 euro (sans s)
    c'est pas grave, de toute façon comme vous avez pu le constaté je suis nul en orthographe

    PS-Je met pas de suite pour avoir (j'espère) une réponse principalement sur le IF

  7. #7
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  8. #8
    Expert confirmé
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Par défaut
    Salut FCL31,

    Citation Envoyé par FCL31 Voir le message
    J'ai essayé mais je sais pas pourquoi (peut être parce que je ne maitrise pas les champs dans Word) mais sa marche pas : j'ai du mal faire un truc
    Peut-être n'as-tu utiliser l'instruction "Insertion > Champ" qui insère les fameuses pseudo-parenthèses ouvrantes et fermantes ? C'est souvent la source du problème car j'ai ré-essayer mon code (pour être sûr), il fonctionne (sur mon Word).

    Tu as modifé la source, ce qui est aussi une solution (mais toujours réalisable). Si tu désires le fichier avec les champs, je peux te le mettre ne copie à titre d'information.

    @+

  9. #9
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Merci

    Citation Envoyé par Sepia Voir le message
    Peut-être n'as-tu utiliser l'instruction "Insertion > Champ" qui insère les fameuses pseudo-parenthèses ouvrantes et fermantes ?
    J'ai fait avec "Ctrl + F9"


    Citation Envoyé par Sepia Voir le message
    Si tu désires le fichier avec les champs, je peux te le mettre ne copie à titre d'information.
    Je veux bien STP

  10. #10
    Expert confirmé
    Avatar de Sepia
    Homme Profil pro
    Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Inscrit en
    Octobre 2007
    Messages
    3 117
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Administrateur du cursus IDE@L - Chef de Projet NCU (digital learning) - Université de Rennes
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3 117
    Par défaut
    Salut,

    voilà un exemple.

    @+

  11. #11
    Membre éclairé Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    887
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 887
    Par défaut
    Merci Sepia je vais regarder ton exemple minutieusement et je le garde de coté.



+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir des chiffres en lettres
    Par azde7015 dans le forum VBA Access
    Réponses: 16
    Dernier message: 19/05/2019, 15h16
  2. convertion des chiffre en lettre
    Par maroon1970 dans le forum Windows Forms
    Réponses: 12
    Dernier message: 23/05/2007, 17h03
  3. Ecrire des chiffres en toutes lettres
    Par ali_Imouzzer dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 21/02/2007, 18h44
  4. composant pour convzrtir des chiffres en lettres
    Par ouldfella dans le forum Composants VCL
    Réponses: 6
    Dernier message: 01/06/2006, 11h40
  5. composant qui convertis des chiffres en lettre sous Delphi?
    Par ouldfella dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/03/2006, 14h28

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