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 :

virgule et point [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut virgule et point
    Bonjour à tous,

    J'ai cherché une réponse à mon problème sans succés.
    Ma macro fonctionne mais partiellement. Je m'explique,

    J'ai un fichier csv que j'ouvre via une macro dans une nouvelle feuille. dans ce fichier, la virgule est representé par un point et j'ai besoin d'une virgule.

    j'applique cette macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub remplacement()
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False
    End Sub
    le problème est qu'il me remplace bien certaine colonnes mais sur d'autres colonnes, 282.3513 devient 2823513 au lien de 282,3513...

    Merci pour votre aide

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Bonjour
    Pour changer les . en , il vaut peut être mieux utiliser le Données/Convertir
    Un exemple de conversion de la colonne E:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Selection.TextToColumns Destination:=Range("E1"), DataType:=xlDelimited,DecimalSeparator:="."

  3. #3
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    salut fgiambelluco,

    j'ai pas bien compris ta réponse

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Re
    En fait l'idée, ce n'est pas d'utiliser le Remplacer , mais le Convertir.

    Pour test ça (en manuel sans VBA):
    -ouvre ton fichier CSV
    -Sélectionne les colonnes qui contiennent des chiffres
    -Va dans Données/convertir
    -laisse délimité, suivant
    -laisse (ou met) tabulation, suivant
    -Clic sur Avancé
    -Met le . dans séparateur décimal (ici il faut lui dire comment la donnée arrive et non ce que tu veux)
    -Ok, terminé
    Si ça c'est bien passé, recommence en enrgistrant une macro pour récupérer la syntaxe

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Salut,

    Y'a bien plus simple pour corriger ce petit bug VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    Et oui, remplace un point par un point et tu verras

    C'est beau non ?

  6. #6
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    salut DeaD78,

    je remplace un point par un point et après un point par une virgule?

    je vais essayer...

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Tu remplaces un point par un point et puis c'est tout

  8. #8
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    mais moi j'ai besoin d'une virgule, car je fais des calcul et des mise en forme(% et autres) qui nécessite les virgules...

    Personne ne voit une autre solution à ce bug de VBA...

    Merci d'acance

  9. #9
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Re
    A l'attention de Dead78
    Tu remplaces un point par un point et puis c'est tout
    J'avoue que je ne vois pas ou tu veux en venir . J'ai essayé ton code (Excel 2003) et devine....il a mis un . à la place des .


    A l'attention de samz25
    Personne ne voit une autre solution à ce bug de VBA...
    Tu as essayé la méthode que je t'ai proposé (Données/Convertir) ?

  10. #10
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    mais moi j'ai besoin d'une virgule, car je fais des calcul et des mise en forme(% et autres) qui nécessite les virgules...

    Personne ne voit une autre solution à ce bug de VBA...

    Merci d'avance

  11. #11
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Re,

    J'avoue que je n'ai pas été très clair !

    samz25, as-tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    ?

    Normalement, en tout cas chez moi (Excel 2003), le point est remplacé par une virgule !

  12. #12
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Donne nous un fichier exemple avec quelques données (vire les entête de colonne si on ne sais pas de quoi tu parle on peux avoir tes chiffres) et ta macro (et vérifie que ca pose bien un problème dans ce cas la)

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bon, je viens de refaire le test chez moi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
     
    Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
     
    End Sub
    Je mets 282.3513 dans une case, je lance la macro après avoir sélectionné la case et j'obtiens une virgule à la place du point grâce à la beauté du VBA

    Bref samz25, as-tu testé oui ou non ?

  14. #14
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 41
    Par défaut
    re,

    j'ai teste et j'ai toujours un le point et comme type string.

    Finalement, j'ai travaillé avec les cellules...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 2 To 19
        For j = 3 To NbMembre
            s = referentiel.Cells(j, i).Value
            g = Application.WorksheetFunction.Substitute(s, ".", ",")
            referentiel.Cells(j, i).Value = CDbl(g)
            j = j + 1
        Next j
    Next i
    voilà... merci pour votre aide

  15. #15
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    Dead Ton code marche au poil j'adore
    samz25 le code avec les bonne ligne et colonne
    Essaye c'est magique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    Range("A3:S" &NbMembre
    ) .Replace What:=".", Replacement:=".", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    End Sub

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

Discussions similaires

  1. Virgule et Point
    Par gige47 dans le forum Delphi .NET
    Réponses: 5
    Dernier message: 22/08/2007, 12h41
  2. Changer les virgules en points dans un fichier texte
    Par lilibert dans le forum MATLAB
    Réponses: 8
    Dernier message: 19/06/2007, 17h41
  3. Réponses: 4
    Dernier message: 23/02/2007, 10h56
  4. transformer la virgule en point avec format
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 25/07/2006, 14h09
  5. Virgule et point ...
    Par pifou02 dans le forum Access
    Réponses: 3
    Dernier message: 16/06/2005, 15h20

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