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 :

Point . et virgule , sous VBA - format des nombres décimaux et dates [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut Point . et virgule , sous VBA - format des nombres décimaux et dates
    Bonjour
    je rencontre un problème tout à fait idiot qui me bloque depuis deux jours.
    J'ai un fichier Excel ou sont répertoriés des montants et des dates.
    Les montants ont un format 0,00 € les poids 0,000 (kg) et les dates 15-06-2017

    On me demande de fournir un excel à partir de celui-ci pour rentrer mes articles dans lequel les montants devront être au format 0.00 ou 0.000 et les dates au format américain 2017-06-15

    J'ai bien pensé à la méthode numberformat = "0.000" mais si ça me sort bien 0,000 => soit le bon format mais pas le bon séparateur, il me faut absolument le "."
    A noter que je ne PEUX PAS, pour d'autres exploitations du fichier de base, passer tous mes chiffres en sépérateur américain "." je dois garder la ","
    => comment faire ?

    Pour les dates, je ne trouve carrément pas le format de la méthode pour changer les dates de 15/06/17 en 2017-06-15 ...

    Accessoirement, comment centrer ou mettre gauche ou à droite les données dans une colonne ?

    Qqn a t il rencontré ces problèmes ?

    Merci de votre partage d'expérience.

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,

    excel utilise les paramétrés régionaux! toutes tentative de modifier les format pour faire plaisir aux donneur d'ordres, entraîne des complications dans le travail de tous les jour et ce quelque soit la langue de l'utilisateur!

    explique à ces messieurs qu'ils pourront fournir leurs fichiers à Donald les accents aigu n'auront pas l'accent américain, mais les date en les nombres oui!

  3. #3
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    pour les dates c'est le truc simple format de cellule d'abord Date (tu dois avoir un truc du genre JJ/MM/AAAA) -->personnalisé--> dans le champ tu met(AAAA/MM/JJ)
    pour les chiffre le symbole decimal est pris avec les option regionale et ce change normalement à l'ouverture ( et il n'est pas dit que les dates n'en fassent pas autant je n'ai jamais eu de problème avec les USA,l'Italie ni l’Angleterre ou l'Allemagne..sinon pour traduire les intitulés)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je ne suis pas sur que le format monétaire soit une bonne idée 100€ 100$ 100£ 100¥ c'est pas la même chose!

    On peut se poser la question de accent bien que je ne sois pas sur que les américains écrivent souvent à un "depute"!

    Si tu travail exclusivement pour l'Amérique alors passe tes paramètres régionaux en américain!

    Je voulais juste mettre en évidence ce genre de demande!
    Dernière modification par Invité ; 15/06/2017 à 17h33.

  5. #5
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut J'voudrais bien !
    Citation Envoyé par dysorthographie Voir le message
    bonjour,

    excel utilise les paramétrés régionaux! toutes tentative de modifier les format pour faire plaisir aux donneur d'ordres, entraîne des complications dans le travail de tous les jour et ce quelque soit la langue de l'utilisateur!

    explique à ces messieurs qu'ils pourront fournir leurs fichiers à Donald les accents aigu n'auront pas l'accent américain, mais les date en les nombres oui!
    Malheureusement, 'est bien ce que je pensais..et que je ne voulais pas, car le gros malin qui me demande ça, c'est AMAZON..
    D'ailleurs, j'ai le même problème avec l'orthographe: je colle une valeur "True" dans certaines colonnes et il ressort "VRAI" une fois que le programme a fini...j'ai traduit.

  6. #6
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    alors si je comprends bien (et c'est vrai que mon format numérique est exactement 0,00 et pas 0,00 €), Daranc, je dois faire quoi ?
    Comment changer les paramètres à l'ouverture, et ne pas influencer les autres colonnes de chiffres ?
    Ce fichier doit rester avec des décimales "," pour que d'autres appli viennet prendre les bonne valeurs.
    C'est pour ça que je ne comprends pas qu'avec la méthode numberformat, on ne puisse pas gérer uniquement le format des colonnes crées avec cette méthode dans le fichier de destination ?
    suis je clair ?
    Dans mon fichier A, j'ai des "," et des 22/12/2015
    Dans le fichier Excel crée par mon code, j'ai besoin de "." et de 2015-12-11.

    en fait; malgré le reformatage des colonnes adhoc, je conserve mes "," décimales, par contre je passe bien de 2 à 3 chiffres derrière la virgule; il n'y a que le séparateur qui ne "passe pas" ..et mon True qui devient VRAI.
    Ma date elle, se change bien en définissant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("Amazon").Columns("W:W").NumberFormat = "YYYY-MM-DD"
    Casse tête

  7. #7
    Invité
    Invité(e)
    Par défaut
    A adapter.

    A amazone tu fournis une copie du fichier et tu garde ton exemplaire de travail tel quel!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    With range("A1").currentregion
          for i = 2 to .rows.goinfre 
             .cells(i,"A")="'" & frormat(.cells(i,"A"),"yyyy-mm-dd")
             .cells(i,"B") ="'" & array("False"),"True")(abs(.cells(l,"B"))  'Faux/Vrai
          next
     
    End with
    Dernière modification par Invité ; 15/06/2017 à 22h07.

  8. #8
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut suite
    ..on avance.

    D'abord, j'ai oublié de dire que pour me débrouiller, je retravaillais à la main le fichier édité en
    - remplaçant bêtement VRAI par True (ça, ça marche)
    - remplaçant (rechercher/remplacer) "," par "." pour mes chiffres

    Et là, chose curieuse, mes nombres avec les 2 decimales derrière le point devienent pour certaines 15 décimales derrière le point et ce nombre part à gauche dans la cellule !
    N'importe quoi !
    Voyez, sur les deux co:lonnes de gauche, le 6,5 est devenu 6.5 et est "parti" à gauche
    sur la troisième, à droite 0,3 est devenu 0.3 en allant à gauche et 0,393 est devenu 0.393333333333333 !

    Nom : 2017-06-15_220631.jpg
Affichages : 6389
Taille : 57,1 Ko

    Pour dysorthographie, j'avoue que ce bout de code est un peu abscons pour moi...
    que font exactement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .cells(i,"A")="'" & frormat(.cells(i,"A"),"yyyy-mm-dd")
    .cells(i,"B") ="'" & array("False"),"Tue")(abs(.cells(l,"B"))
    ?

  9. #9
    Invité
    Invité(e)
    Par défaut
    Le "'" empêche excel de convertir le format américain en format français (texte)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With range("A1").currentregion
          for i = 2 to .rows.goinfre 
             .cells(i,"A")="'" & frormat(.cells(i,"A"),"yyyy-mm-dd") 'forma date américaine
             .cells(i,"B") ="'" & array("False"),"True")(abs(.cells(l,"B"))  'Faux/Vrai Booléens américain 
             .cells(i,"D")="'" & frormat(.cells(i,"D"),"#0.00") ' nombre américain 
     
          next
    *
    End with

  10. #10
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    je suis sans doute novice, mais goinfre, c'est quoi ?

    Merci Dysorthographie

  11. #11
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    Bonsoir,
    les données à mettre au format américain se trouvent en AJ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Range("AJ1").CurrentRegion
        For i = 4 To 1500
            .Cells(i, "AJ") = "'" & Format(.Cells(i, "AJ"), "#0.00")
        Next i
        End With
    Malheureusement le format reste 0,00

  12. #12
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par Polygos Voir le message
    Bonjour
    et les dates au format américain 2017-06-15

    Merci de votre partage d'expérience.
    Faux, faux, faux, et faux. Ce n'est pas le format américain. C'est le format ISO.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Désolé si goinfre n'est pas reconnu par Excel!

    Je n'arrive pas inhiber la suggestion automatique et pourtant j'ai testé dans excel avant de faire un copier coller! Par exemple si j'écris sql ca devient sal!

    Je fais moins de fautes avec mais ce que j'écris est incompréhensible!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With range("A1").currentregion
          for i = 2 to .rows.count
             .cells(i,"A")="'" & frormat(.cells(i,"A"),"yyyy-mm-dd")
             .cells(i,"B") ="'" & array("False"),"True")(abs(.cells(l,"B"))  'Faux/Vrai
          next
    End with
    Dernière modification par Invité ; 19/06/2017 à 07h59.

  14. #14
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Faux, faux, faux, et faux. Ce n'est pas le format américain. C'est le format ISO.
    bonjour !
    bien, mais ça change quoi ? une idée ?

  15. #15
    Membre émérite

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Points : 2 523
    Points
    2 523
    Billets dans le blog
    1
    Par défaut
    si tu as une virgule au lieu d'un point c'est que tes option régionales sont avec la virgule le point du VBA doit être converti automatiquement,
    si dans les options régionales tu met le point comme séparateur décimal il te mettra le point.
    mais si la virgule t'es indispensable pour d'autre programme essaies Ctrl H premier champ "," deuxième champ "."
    tes nombres vont effectivement être mis en texte et passer à gauche de la cellule.
    mais quelqu'un avec les options régional "." devrait avoir des nombre pour les 15 decimales ça c'est le miracle des conversion Excel : si ton nombre est affiche à deux décimales rien ne dit qu'il tombe juste alors exceller garde une flopée de décimales cachées ce qui n'est pas le cas pour du texte tu peux vérifier ça en faisant un calcul aui format affiché ( mais cette opération n'est pas réversible)

  16. #16
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonjour,

    Désolé si goinfre n'est pas reconnu par Excel!

    Je n'arrive pas inhiber la suggestion automatique et pourtant j'ai testé dans excel avant de faire un copier coller! Par exemple si j'écris sql ca devient sal!

    Je fais moins de fautes avec mais ce que j'écris est incompréhensible!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With range("A1").currentregion
          for i = 2 to .rows.count
             .cells(i,"A")="'" & frormat(.cells(i,"A"),"yyyy-mm-dd")
             .cells(i,"B") ="'" & array("False"),"True")(abs(.cells(l,"B"))  'Faux/Vrai
          next
    End with
    Bonjour Dysorthographie, vu pour les formats de date et logique, mais pour les nombres, j'ai essayé et ça ne fonctionne pas, je conserve la ",", soit 0,00:


    "les données à mettre au format américain se trouvent en AJ:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Range("AJ1").CurrentRegion
    For i = 4 To 1500
    .Cells(i, "AJ") = "'" & Format(.Cells(i, "AJ"), "#0.00")
    Next i
    End With
    Malheureusement le format reste 0,00"..


    A ton avis ?

  17. #17
    Invité
    Invité(e)
    Par défaut
    et ça .cells(i,"D")="'" & frormat(.cells(i,"D"),"#0.00")' nombre américain ca ne fonctionne pas?

  18. #18
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 266
    Points
    34 266
    Par défaut
    Salut,

    une lecture qui tombe a point
    http://jpcheck.developpez.com/tutori...international/
    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 :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    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

  19. #19
    Membre du Club Avatar de Polygos
    Homme Profil pro
    Ma petite entreprise
    Inscrit en
    Avril 2016
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ma petite entreprise
    Secteur : Distribution

    Informations forums :
    Inscription : Avril 2016
    Messages : 190
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    et ça .cells(i,"D")="'" & frormat(.cells(i,"D"),"#0.00")' nombre américain ca ne fonctionne pas?

    j'ai un doute..ça fai plusieurs posts que je vois frormat et pas format; on est bien d'accord que c'est une coquille ?

  20. #20
    Invité
    Invité(e)
    Par défaut
    plus basic "'" & replace (1.2,",",".")

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [LibreOffice][Texte] Changer le format des nombres décimaux
    Par dré kam dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 04/06/2015, 02h01
  2. Format des nombres décimaux
    Par karnass dans le forum Langage
    Réponses: 2
    Dernier message: 07/01/2013, 14h13
  3. Réponses: 4
    Dernier message: 10/09/2012, 11h38
  4. Comment formater des nombres décimaux ?
    Par Niguilouti dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/11/2009, 16h20
  5. Réponses: 3
    Dernier message: 03/08/2007, 09h06

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