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 :

convertir montant en format monétaire sous macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut convertir montant en format monétaire sous macro
    Bonjour à tous

    Je souhaiterai pouvoir faire une macro qui tranformerai des valeurs d'une Base de donnée dans un format monétaire exploitable sous excel.

    Il faut que j'enlève le séparateur de millier qui est défini par un point dans mon extraction.
    3.922,50
    86,31
    70
    500,5
    Soit je fais edition remplacer"." par "blanc" ou données convertir avancé séparateur millier. Ces 2 méthodes fonctionnent très bien manuellement.

    Mais le résultat est incorrect quand j'intégre ces méthode en macro.
    Les milliers sont correctes mais les chiffres inférieurs sont sous le format suivant
    3 922,50
    86 31
    70
    500 5

    Merci beaucoup pour votre coup de pouce

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 211
    Points : 300
    Points
    300
    Par défaut
    Bonjour,

    tu peux nous communiquer le code ta macro ?


    Cdt,
    Benoit

  3. #3
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,via le Menu Outils/Options Onglet International Gestion des nombres
    utilise l'enregisteur de macros pour visualiser le code correspondant et rétablir les parametres initiaux après l'import

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Bonjour kiki29

    J'ai un fait un test avec le code international comme tu me l'avais indiqué, la macro fonctionne sur les milliers mais les décimales des centaines ou dizaines se retrouvent avec un point ou donc inutilisable pour des sommes.
    J'utilise l'enregistreur de macro. Quand je crée la macro tout est bon mais dès que je l'exécute le résultat est faux soit par ex
    13 687,34
    4 567,56
    567.34
    17.45
    3.2
    6


    Voici le code de la macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
        Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(1, 1), ThousandsSeparator:=".", TrailingMinusNumbers:=True
        Range("A8").Select
        ActiveCell.FormulaR1C1 = "=SUM(R[-7]C:R[-1]C)"
        Range("A9").Select
    End Sub

  5. #5
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Bonjour,

    vois ceci :

    Influence des séparateurs décimal et listes FR/US sur l’enregistreur de macro peut-être..

    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 158
    Points : 61
    Points
    61
    Par défaut
    Bonjour Ormonth


    Malgré de très nombreux essais les test restent non concluants, car lorsque j'utilise le code aucune conversion ne s'exécute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Selection.TextToColumns Destination:=Range("G1"), 
            1), DecimalSeparator:=".", ThousandsSeparator:="  ", 
    OU DecimalSeparator:=".", ThousandsSeparator:=".",
    Aurait-tu une autre idée ?

  7. #7
    Membre expérimenté Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Points : 1 482
    Points
    1 482
    Par défaut
    Bonjour
    Mon code tout simple fonctionne pour moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro2()
        Range("A1:A4").Select
        Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Selection.Replace What:=",", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        Selection.NumberFormat = "#,##0.00 $"
    End Sub

    voici le résultat
    3 922,50 €
    86,31 €
    70,00 €
    500,50 €

    J'ai remplacé ta virgule par la virgule du clavier en plus

    Essaie sur cel A1:A4
    ! Quand tu es arrivé au sommet de la montagne, continue de grimper !

  8. #8
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut Pourquoi ne pas modifier à la source ?
    Salut,

    avant de faire des usines à gaz, ne serait-il pas plus simple de formater le nombre lorsque tu le génère à partir de ta BDD ?

    J'ignore laquelle tu utilises, mais toutes permettent d'afficher et de formater les données en sorties.
    Tu pourrais utiliser le format attendu par excel, par ex. 0,00 tu aurais ainsi un résultat sous la forme 123456789,01 plus rapidement exploitable sous excel.

    En espérant avoir pu t'apporter une aide quelconque.

    Christian

Discussions similaires

  1. Réponses: 3
    Dernier message: 10/03/2015, 10h37
  2. Affichage d'un montant en format monétaire
    Par chekkal dans le forum Débuter
    Réponses: 3
    Dernier message: 23/02/2014, 20h26
  3. [Toutes versions] Convertir format monétaire en format texte
    Par Christian Thonier dans le forum IHM
    Réponses: 1
    Dernier message: 23/10/2009, 08h37
  4. Réponses: 10
    Dernier message: 22/06/2008, 17h12
  5. Convertir un double en format monétaire
    Par lynepicard dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/08/2007, 16h32

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