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 :

Séparateur de Milliers .


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut Séparateur de Milliers .
    Bonjour :

    Voilà mon problème est le suivant :

    J'extrait des fichiers d'un serveur Win Comp 6. ;


    1. Ces Fichiers sont des fichiers de type *.nom du fichier ;
    2. Ces Fichiers ne sont pas des fichiers texte .txt.
    3. J'ouvre un classeur Excel et je les importe .
    4. Après l'importation, tous les chiffres sont au Format Standard , je les ai changé en Nombre mais rien n'y fait.
    5. Dans le Fichier Excel , les milliers sont avec séparateur de Milliers .
    6. J'ai effectué des Macros de sommations , qui bloquent à chaque fois qu'il y'a un nombre en Milliers car existence d'un espace : 2 018.
    7. J'ai essayé plusieurs méthodes pour enlever cet Espace des Milliers mais rien n'y fait : j'ai essayé avec du vba LA FONCTION SUPPESPACE/ Format de Cellule...
    8. Comme Résultat je suis bloqué je ne peux pas effectuer les Macros Sommes.

      Quelqu'un peut il me donner une Solution à ce problème.

    Merci .

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    Bonjour,

    à l'importation, à l'étape 3 tu sélectionnes ta colonne et tu cliques sur 'Avancé...' pour choisir tes séparateurs de milliers et décimal.
    eric

  3. #3
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    Bonjour :

    Merci pour votre réponse;

    Mais rien n'y fait , je viens d'appliquer cela mais ça ne marche pas.

    J'ai modifié les séparateurs des milliers lors de l'importation mais les séparateurs restent.

    Merci.

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Essaye de voir ce que ferait par exemple ceci chez toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Range("A1")
      .Value = Replace(.Text, ".", ",") * 1
      .NumberFormat = "general"
    End With
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663
    Par défaut
    pour compléter unparia, ou bien avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Value = Replace(.Text, Chr(160), "")
    En manuel : sélectionner la colonne, Ctrl+H
    Remplacer: Alt+0160
    par:rien

    Si c'est bon, le Alt+0160 peut également être saisi à l'importation, étape 3
    eric

  6. #6
    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 !

    Citation Envoyé par Super2016 Voir le message
    Mais rien n'y fait , je viens d'appliquer cela mais ça ne marche pas.
    Si cela ne fonctionne pas - normalement si dans 99,99% des cas ! - alors modifier la configuration d'Excel
    avant l'importation afin d'être calée sur le fichier à importer …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    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)

  7. #7
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Bonjour !

    Si cela ne fonctionne pas - normalement si dans 99,99% des cas ! - alors modifier la configuration d'Excel
    avant l'importation afin d'être calée sur le fichier à importer …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …


    Bonjour :

    J'ai essayé de joindre le fichier mais j'ai reçu le message :" Fichier non valide"; comment modifier la config Excel .

    Avez-vous un Dropbox, une adresse email: je vous enverrai le document initial .

    Si on prenait le problème à l'envers : Pourquoi une simple Macro Excel n'effectue pas une somme normale sur des chiffres avec des séparateurs de Milliers :

    650+ 2 350 + 8 245.


    Merci.

  8. #8
    Membre expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 267
    Points : 3 663
    Points
    3 663

  9. #9
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    Citation Envoyé par eriiic Voir le message

    Bonjour :

    ça n'a rien donné.

    Si vous avez un email ou un dropbox je vous enverrai le fichier de base qu'on peut convertir en Excel.

    Même la fonction replace - remplacer ne fonctionne pas.

    CDT.

  10. #10
    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 Super2016 Voir le message
    Pourquoi une simple Macro Excel n'effectue pas une somme normale sur des chiffres avec des séparateurs de Milliers
    Excel somme sans souci des nombres et dans ce cas ce n'est pas des nombres mais du texte suite à une mauvaise importation …

    Donc dans le paramétrage d'Excel - tout dépend déjà de la version devant pourtant être indiquée dans le préfixe de la discussion -
    modifier les séparateurs décimal et de milliers.     Ils peuvent être forcés par code, voir l'aide VBA des propriétés

     DecimalSeparator  ,   ThousandsSeparator   et   UseSystemSeparators   …

    Si le fichier ne passe pas après l'ajout de l'extension .txt, en joindre un plus p'tit respectant le format d'origine.

    Et merci de ne pas citer l'intégralité du message juste précédent, aucun intérêt à part nuire à la lisibilité !
    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)

  11. #11
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 814
    Points : 2 949
    Points
    2 949
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Un petit test à effectuer pour écarter d'autres pistes que celles proposées sur ce fil...

    Sélectionne une cellule "en erreur" et lance cette démo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Sub Demo()
        MsgBox Extrait(ActiveCell.Value)
    End Sub
     
    Private Function Extrait(C As String) As String
    Dim i&, temp$
        For i = 1 To Len(C)
            If Not IsNumeric(Mid(C, i, 1)) Then temp = temp & vbCrLf & Asc(C)
        Next i
        Extrait = temp
    End Function
    Reviens ici nous donner le contenu de la MsgBox.
    Cordialement,
    Franck

  12. #12
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 914
    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 914
    Points : 5 121
    Points
    5 121
    Par défaut
    Bonsoir wild bledi, Bonsoir à tous
    essaye avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub mamacro()
    Dim DernLigne As Long
    DernLigne = Range("C" & Rows.Count).End(xlUp).Row
     Columns("c:c").Select ' ici la plage à mettre en forme
        Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    For i = 1 To DernLigne
    Range("c" & i).Value = CDbl(Range("c" & i).Value)
    Range("c" & i).NumberFormat = "#,##0.000" ' trois chiffre après virgule
    Next i
    End Sub
    --------------------------------------------------------------*****----------------------------------------------------------------------------
    Bonne Continuation & Plein Succès
    Notre seul pouvoir véritable consiste à aider autrui avec modestie
    ______________________________________________________
    Pour dire merci, cliquer sur et quand la discussion est résolue, penser à cliquer sur le bouton

  13. #13
    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
    Bonjour,

    Si ton fichier importé n'est pas un TXT, joins ton classeur sans macro (xlsx) une fois les données importées. Pas nécessaire de tout laisser... quelques lignes devraient suffire.
    MPi²

  14. #14
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    Bonjour :

    Je remercie tous de vos différentes réponses;

    Ci joint l'Etat ouvert dans Excel : puisque le fichier initial est sans format , il est extrait d'un serveur et peut etre lu dans differents programmes:

    .TXT/ .XLSX/.DOC.


    Merci.

    @pijaku: j'ai appliqué le VBA sur une cellule et la boîte de dialogue donne différents résultats : 49 49 / 57 / ... selon la cellule sélectionnée .
    Fichiers attachés Fichiers attachés

  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
    Comme mentionné par eriiic (salut), c'est bien un espace insécable > caractère ASCII 160
    Tu peux faire comme il t'a dit:
    • Ctrl-H
    • Alt + 0160 dans la 1e boîte (ça va mettre un espace)
    • Rien dans la 2e
    • Remplacer tout
    MPi²

  16. #16
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    Bonjour :

    @parmi : j'ai déjà essayé la solution Alt + 0160 mais elle ne fonctionne pas.

    Merci.

  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
    Pourtant elle fonctionne bien ici avec le fichier que tu as mis.
    Quel est ton format de nombre dans Excel (Windows) ? séparateurs de milliers et décimales
    MPi²

  18. #18
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    Bonjour :

    Ctrl-H - - - - - - Ouvres la fenêtre Remplacer
    Alt + 0160 dans la 1e boîte (ça va mettre un espace) ------ mettre dans le champ de haut
    Rien dans la 2e- - - - - - - - - 2 ème champ reste vide
    Remplacer tout

    J'ai bien suivi cela , mais rien.

    Pour Excel : chez le séparateur Décimal : , Virgule et le séparateur Milliers : . Point

    Je n'ai pas utilisé les séparateurs système.

    Et la fonction régional des nombres est sur regroupement ( Windows) .


    Merci.

  19. #19
    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
    Si tu veux essaie par macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Remplacer()
        Columns("D").Replace What:=Chr(160), Replacement:="", LookAt:=xlPart
    End Sub
    MPi²

  20. #20
    Membre régulier
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mai 2016
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 78
    Points : 96
    Points
    96
    Par défaut
    @parmi: Impeccable, ça a amélioré les choses ; Sauf que les décimales et les Milliers ont les mêmes séparateurs : . Point.

    Or, il nous faut des virgules pour les Décimales.

    Merci.

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

Discussions similaires

  1. Séparateur de millier
    Par fo comlan dans le forum Général Python
    Réponses: 6
    Dernier message: 20/06/2007, 14h17
  2. [SQL] séparateur de millier
    Par moneyinthebank dans le forum Langage SQL
    Réponses: 4
    Dernier message: 19/10/2006, 11h36
  3. Séparateurs des milliers
    Par blowlagoon dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/05/2006, 10h02
  4. Format des nombres entiers, séparateurs de milliers
    Par zazaraignée dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2005, 01h25
  5. [VB.NET] Séparateur de milliers
    Par anael dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/03/2005, 15h14

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