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 :

Suppression point séparateur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut Suppression point séparateur
    Bonjour, je suis en stage en entreprise, et je travail sous VBA avec excel.
    J'extrait des données sous SAP que j'incorpore à un tableur excel. Dans mon programme je dois comparer des longueurs.
    Malheureusement ces données sont enregistré sous le format(par exemple):

    1.000,040

    avec un .(point) dès que l'on passe aux millier.
    Je n'arrive donc pas à faire des comparaisons.

    J'ai essayé de faire cela pour supprimé les points:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub remplacer_point()
        Sheets("Données brutes").Activate
        Columns("Z:Z").Select
        Selection.Replace What:=".", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=True
    End Sub

    Malheureusement, cela supprime aussi les , (virgules).

    Comment faire?
    Merci pour votre aide.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Essaie en remplaçant les points sur toute la colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Col = ActiveCell.Column
        Columns(Col).Replace What:=".", Replacement:=" ", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
        MsgBox CDec(ActiveCell.Value)
    Sinon, on a une autre solution mais teste d'abord ça
    A+

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut
    Je viens d'essayer, cela fonctionne pour les milliers au format:

    1.000,005

    en les rendant ainsi:

    1 000,005

    mais pour les nombre au format:

    100,05

    cela les rend ainsi:

    100 05

    en supprimant la virgule.

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ok. Alors regarde à OpenText, dans l'aide, il y a plusieurs paramètres intéressants
    expression.OpenText(FileName, Origin, StartRow, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, TextVisualLayout, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers, Local)
    Je te passe un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Workbooks.OpenText Filename:="D:\xls\Classeur1.txt", StartRow:=1, _
        DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter _
            :=True, Semicolon:=True, DecimalSeparator:="."
    Pour être sûr de tes séparateurs décimal et milliers, je ferais une boucle sur chaque caractère du contenu d'une cellule concernée pour en connaître les codes ascci. Tu pourrais avoir des surprises.
    A+

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 10
    Par défaut
    J'ai pas trop compris à quoi me servait le dernier code, ni comment l'utiliser (je suis en 1ere année de BTS et vba j'y travail vraiment que depuis mon stage).

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    L'aide t'en dira plus. Le dernier code ? Je l'ai juste mis pour la syntaxe. Il t'indique comment utiliser les paramètres d'ouverture d'un fichier. Là, il sert à ouvrir un fichier avec séparateur décimal "."
    Ce qui le faut c'est connaître les véritables séparateur de ta donnée
    Pour ça, tu fais une macro... allez, la voici
    Je suppose la valeur qui se trouve dans la cellule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Donnee = Cells(NoLigne,NoCol).value
    For i = 1 to len(Donnee)
         Msgbox asc(Mid(Donnee,i,1)) & " => " & Mid(Donnee,i,1)
    Next
    Tous les codes de 48 à 57 compris sont les chiffres. Indique-nous les deux autres
    A+

Discussions similaires

  1. Séparateur de décimaux : virgule au lieu du point
    Par relena93 dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2007, 11h04
  2. Suppression points doublons
    Par vincmor dans le forum Administration
    Réponses: 2
    Dernier message: 15/11/2006, 23h44
  3. [VBA-E] Suppression de lignes à partir d'un point particulier
    Par coxi77 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/07/2006, 13h22
  4. Réponses: 3
    Dernier message: 11/11/2005, 11h59

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