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 :

Remplacer le point et la virgule des milliers


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Points : 68
    Points
    68
    Par défaut Remplacer le point et la virgule des milliers
    bonjour a tous,

    je recupère des données chiffrés de SAP ( notamment des poids ) sous la forme d'un tableau excel et je voudrais en faire la somme.

    sauf que les poids supérieur à 999 kg se trouve sous la forme : 1.956,282

    quand je fais le "remplace" manuellement, ça marche bien, il me trouve bien le point.

    Dès que je le fais en auto ( execution de la macro enregistrée ), il me remplace le point et la virgule !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveCell.Replace What:=".", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    et 1.956,282 devient 1956282

    quand je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Columns("W:W").Select
    Selection.Find(What:=".", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
            :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _ 
            MatchCase:= False, SearchFormat:=False).Select
    il me sélectionne 6,632 !!!

    si quelqu'un peut aider, je prends...

    merci d'avance

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Points : 2 553
    Points
    2 553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ActiveCell.Replace What:=".", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    Activecell=activecell.value/1000

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Points : 68
    Points
    68
    Par défaut
    ouais...

    j'avais essayé ça aussi mais bon... c'est pas très propre...

    allons-y pour cette solution là...

    je laisse néanmoins le sujet ouvert

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Bonjour,

    pourquoi pas très propre ?‼

    Franchement c'est l'importation des données de SAP qui n'est vraiment pas propre ‼
    J'aurais plutôt commencé de ce côté là …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Points : 68
    Points
    68
    Par défaut
    le truc c'est que le fichier excel qui sort de SAP, je le gere pas...

    les données ont toutes un format "standard".

    ma réponse n'était en aucun cas une critique.

    je pensais juste qu'on pourrait faire quelque chose avec les format mais bon...

    je ferme donc !!!

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Ici, au bureau, on ne se casse pas la tête avec les transfos. On change nos paramètres régionaux dans Windows pour être compatible avec SAP...
    MPi²

  7. #7
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut remplacer le point
    Bonjour Parmi et autres membres,

    Il y a surement quelque chose qui m'échappe dans la question:
    quand je fais l'essai du code Canichon, seul le point est bien supprimé et la virgule reste en place.
    De même le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell = Replace(ActiveCell, ".", "")
    donne le résultat tel que je l'ai compris ; à savoir : 1.956,282 -> 1956,282

    Ceci étant: Parmi, peux-tu me dire ce que tu modifies exactement lorsque tu rencontres ce problème.
    Sur version 2013 je suis aller dans "panneau de configuration" / "région et langue" et "nombre".

    Que faut-il adapter exactement ? Groupement des chiffres / symbole de groupement des chiffres / Système d'unités de mesure.

    Par ailleurs, que signifie SAP

    Merci

    Cordialement,

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Citation Envoyé par canichon Voir le message
    le truc c'est que le fichier excel qui sort de SAP, je le gere pas...
    C'est un vrai fichier Excel (.xls) où plutôt un fichier texte .csv, .tab ou .txt ?
    Citation Envoyé par canichon Voir le message
    je pensais juste qu'on pourrait faire quelque chose avec les format mais bon...
    Là ce n'est pas un problème de format mais de données mal importées …

    Je pourrais proposer un autre code mais avec plus de lignes comparé à celui d'EngueEnngue …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Salut Paul !
    Citation Envoyé par nibledispo Voir le message
    De même le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell = Replace(ActiveCell, ".", "")
    donne le résultat tel que je l'ai compris ; à savoir : 1.956,282 -> 1956,282
    Comme cela dans ma version de test 2003 française j'ai le même souci que canichon !

    Par contre cela fait partie de ma solution avec des contrôles pas indispensables pour une colonne strictement numérique …

    Afin de fonctionner de mon côté, une conversion supplémentaire est nécessaire :

    ActiveCell.Value = CDbl(Replace(ActiveCell.Value2, ".", ""))

    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Pour la configuration Windows, ça prend le point comme séparateur décimal et la virgule, si nécessaire, pour les milliers.

    Il faut aussi regarder comment est faite la configuration dans SAP.

    Si tu travailles en entreprise, SAP est installé avec ses valeurs par défaut pour tous.
    Il est donc plus simple de s'adapter en changeant sa configuration Windows et demeurer compatible avec le reste de l'entreprise...
    MPi²

  11. #11
    Membre expérimenté
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Points : 1 499
    Points
    1 499
    Par défaut remplacer le point
    Bonjour Parmi,

    Je te suis bien sur la simplicité mais je ne sais pas, comme dit dans ma précédente intervention, sur quel paramètre il me faudra intervenir si d'aventure le problème se pose à moi un jour.

    Évidemment si tu ne travailles pas sur version 2013, il te sera difficile de ré
    pondre.

    Cordialement,

  12. #12
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Effectivement, je ne travaille pas avec la version 2013, mais 2007 d'Excel.
    Par contre, le rendu des données sous SAP doit demeurer compatible avec les paramètres Windows sous peine de devoir toujours modifier les données au fur et à mesure...

    Et quand tu travailles continuellement avec ces données, ça devient rapidement fastidieux de faire la modif... et d'expliquer au reste de l'entreprise comment procéder,... et/ou de modifier les macros selon les cas...

    Certains sont en anglais, d'autres français (dont les dates...). Certains ont le point, d'autres la virgule comme séparateur. On n'en finit plus.

    Alors, je conseille à tous ceux avec qui je travaille de changer leur configuration pour faciliter le travail de chacun...
    MPi²

  13. #13
    Membre du Club
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Points : 68
    Points
    68
    Par défaut
    bonjour a tous,

    A ce que je vois, ma question etait pas trop conne !!!

    pour repondre a vos multiples questions :

    - je pense que c'est un *.csv. le fichier exporté est un fichier *.xls mais quand je l'ouvre, ma version 2010 me dit :

    Le format du fichier que vous tentez d'ouvrir, "test.xls", est différent de celui spécifié par l'extension du fichier...

    - Dans SAP, les poids apparaissent à l'écran sous cette même forme 3.257,589 pour un poids de 3 tonnes 257 kilos et 589 grammes.

    - changer le format en entier ou en double donne une erreur... normal dans la mesure où excel considere le poids comme une "string".

    - je ne m'explique toujours pas pourquoi excel me supprime la virgule quand je recherche un point !!! de surcroit, il me fait ça uniquement en automatique via une macro ( manuellement, ça marche )

    - changer les paramètres de windows ou d'excel ??? je veux bien mais changer quoi ??? SAP affiche sous un certain format, excel restitue le même format et la cellule est du format "standard".

    merci pour vos réactions en tous cas.

  14. #14
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Citation Envoyé par canichon Voir le message
    - je pense que c'est un *.csv. le fichier exporté est un fichier *.xls
    L'ouvrir avec le Bloc-notes pour vérifier si c'est un fichier texte ou pas, simple …
    Et si c'est le cas, cela confirme que c'est mal exporté ou mal importé dans Excel !
    Citation Envoyé par canichon Voir le message
    - changer le format en entier ou en double donne une erreur... normal dans la mesure où excel considere le poids comme une "string".
    Pas ce souci de mon côté avec différentes versions d'Excel, peut-être est-ce un souci spécifique à ta version …
    Citation Envoyé par canichon Voir le message
    - je ne m'explique toujours pas pourquoi excel me supprime la virgule quand je recherche un point !!! de surcroit, il me fait ça uniquement en automatique via une macro ( manuellement, ça marche )
    Même souci avec les versions françaises d'Excel 2003 & 2007 …

    Cela arrive parfois qu'une macro enregistrée ne donne pas le même résultat que l'opération manuelle,
    je ne m'en étonne même plus ! …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  15. #15
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Les fichiers XLS de SAP n'en sont pas vraiment.
    Ce sont plutôt des CSV ou TXT avec extension XLS.

    Il faut savoir que SAP a sa propre configuration.
    Pour le savoir, il faut aller dans le menu:
    Système / Valeurs utilisateurs / Données utilisateurs

    Dans le 2e onglet (Constantes), on peut voir le format de nombre que SAP utilise. Soit on change le format dans l'application SAP, soit on change le format dans le panneau de configuration.

    C'est une question de choix...
    Ici, comme on travaille avec des anglais qui utilisent le format SAP, c'est plus simple de changer le format des francophones...
    MPi²

  16. #16
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Ou de se programmer une procédure d'importation aux p'tits oignons comme on dit chez nous, tabernacle ‼
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  17. #17
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    On dit la même chose ici, tabarnak
    MPi²

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

Discussions similaires

  1. [PROC] Remplacer un point par une virgule dans une Proc Tabulate
    Par PAULOM dans le forum SAS Base
    Réponses: 2
    Dernier message: 20/08/2009, 08h36
  2. remplacement du point par une virgule
    Par thierry007 dans le forum Windows Forms
    Réponses: 13
    Dernier message: 13/05/2009, 20h11
  3. remplacer un point par une virgule
    Par paolo2002 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 25/04/2008, 09h43
  4. [C#] Remplacer un point par une virgule
    Par SLicTa dans le forum Windows Forms
    Réponses: 6
    Dernier message: 03/01/2008, 13h08
  5. Oter la virgule des milliers
    Par RuesToulonnaises dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2007, 16h11

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