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 :

Selection.Replace qui supprime au lieu de remplacer [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut Selection.Replace qui supprime au lieu de remplacer
    Bonjour à tous.

    Mon code est assez simple. Il suffit de remplacer les "." par des "," dans la selection. Quand je fais ctrl-F remplacer (manuellement) tout se passe sans problème. Mais, j'ai une macro qui utilise Replace qui ne fonctionne pas.
    Voici le code
    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
    (Fais moi-même et ensuite enregistré avec l'enregistreur de macro (pour être certain!).

    Alors voici le problème :
    Voici ce que j'ai avant d'exécuter la macro

    12345.678912
    12345.67891
    12345.678
    98765.21
    98765.413
    98765.4321
    65894.25
    32198.3
    98713.65

    et ensuite j'ai ceci avec le code


    12345678912
    1234567891
    12345678
    98765,21
    98765413
    ]987654321
    65894,25
    32198,3
    98713,65

    Pourquoi ça fonctione quand il a seulement deux positions ou une après "." et sinon, le "." s'efface au lieu de se remplacer?

    Si dans la sélection il a une cellule avec seulement "." alors le remplacement se fait correctement aussi.

    Merci à l'avance de bien vouloir m'aider, je commence à me cogner la tête dans l'écran!

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    Excel a tendance à ingérer sur nos besoins quand il s'agit de nombre

    En transformant le format des cellules en Texte avant ca fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Selection.NumberFormat = "@"
    Selection.Replace ".", ","

  3. #3
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Merci de l'essais mais ça ne fonctionne toujours pas.

    Je n'ai pas remarqué de différence avec ou sans...

    Dans l'aide en ligne, j'ai noté cette phrase
    replace a une longueur nulle -> Une copie de l'expression, toutes les occurrences de find étant retirées.
    Cela ressemble à mon résultat (mais pas sur tous!)

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Va comprendre, un coup ca marche et un autre

    CE code fonctionne, du moins je l'espère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim R As Range
     
    For Each R In Range("D3:D11")
     
        R.NumberFormat = "@"
        R.Value = CStr(Replace(R.Value, ".", ","))
     
    Next

  5. #5
    Membre chevronné Avatar de drakkar_agfa
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 618
    Par défaut
    Merci beaucoup!

    Je commence déja à avoir un peu moins mal à la tête!

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

Discussions similaires

  1. lien qui ajoute au lieu de remplacer l'url
    Par dkmatt dans le forum Django
    Réponses: 1
    Dernier message: 26/04/2010, 13h31
  2. un REPLACE qui remplace pas
    Par evevev dans le forum Requêtes
    Réponses: 12
    Dernier message: 08/07/2009, 11h55
  3. Replace qui ne remplace pas :s
    Par ced600 dans le forum C#
    Réponses: 4
    Dernier message: 28/03/2008, 14h18
  4. le body.replace qui remplace pas
    Par zooffy dans le forum ASP.NET
    Réponses: 16
    Dernier message: 18/01/2008, 13h57
  5. String.replace qui ne remplace rien
    Par linar009 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/08/2006, 11h04

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