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 virgule par point [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Par défaut Remplacer virgule par point
    Bonjour,

    Je veux automatiser le remplacement des virgules dans une feuille par un point.
    J'ai essayé en enregistrant une macro, dont voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ThisWorkbook.Sheets("Output_Action").Select
        Cells.Select
        Selection.Replace What:=",", Replacement:=".", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=False

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur Pilotage
    Inscrit en
    Avril 2009
    Messages
    405
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur Pilotage
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2009
    Messages : 405
    Par défaut
    Quel est le problème ?

    plusieurs solutions :

    Fonction Replace + boucle sur les cellules non vide ( à partir d'un CurrentRegion)
    Utiliser Sendkeys et simuler les touches Ctrl+A Ctrl+H etc ...

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut remplacement
    Bonjour Zangaloni,

    "Vous pouvez répéter la question?"

    Sinon, 2 remarques :
    - Ces f.... Select sont à proscrire
    - Mieux vaut resteindre ton champ d'action au maximum, du moins par élégance

    (à adapter)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Output_Action").Usedrange.Replace What:=",", Replacement:=".", LookAt:=xlPart

  4. #4
    Membre très actif Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Par défaut
    comment utiliser le sendkeys ?

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Que cherches-tu à faire exactement avec sendkey? Le code de MarcelG ne fait il pas ce que tu souhaitais?

    Si c'est par rapport au message de lelensois16, tu n'as pas d’intérêt à utiliser une telle méthodologie au sein même d'Excel, je dirais même au sein de la suite Office... conserve le code actuel .

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre très actif Avatar de zangaloni
    Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 474
    Par défaut
    Bonjour Qwazerty,

    j'ai bel et bien essayer le code mais ça ne marche pas, pas de changement sur ma feuille !!!ou plutot sur les nombre en virgule

    par contre qu'on je fais manuellement CTR+H et je clique sur remplacer tout, ça marche.

    C'est pourquoi je demandais, comment simuler les sensendkeys.

    Bonne journée.

  7. #7
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut heu...!!!
    bonjour

    chez moi si je tape par exemple 10.5 dans une cellule ca m'ecri 10,5

    tout simplement parceque le format et a la base "standard" soit numerique
    il faut bien utilise la fonction replace mais il faut metre le format de cellule au format "texte"
    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub change_le_point()
    ActiveCell.NumberFormat = "@"
    ActiveCell = Replace(ActiveCell, ",", ".")
     
    End Sub
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour windox,

    et comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub mise_en_forme()
    Dim CH, Rpl
    Dim x As Integer
    CH = Array(" ", "'", "ë", "ê", "ï", "î", "ä", "â")
    Rpl = Array("_", "_", "e", "e", "i", "i", "a", "a")
    For x = 1 To UBound(CH)
      ActiveCell = Replace(ActiveCell, CH(x), Rpl(x))
    Next x
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Bonjour

    Pourquoi boucler 100 fois? autant fournir directement l'adresse des cellules et tout remplacer d'un coup ?


    En reprenant le code de casefayere
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    Sub mise_en_forme(Plage as range)
    Dim CH, Rpl
    Dim x As Integer
     
    'Si la procédure est appelée avec un paramètre vide
    If Plage is nothing then exit sub
     
    CH = Array(" ", "'", "ë", "ê", "ï", "î", "ä", "â")
    Rpl = Array("_", "_", "e", "e", "i", "i", "a", "a")
     
    For x = 1 To UBound(CH)
      'ActiveCell = Replace(ActiveCell, CH(x), Rpl(x))
      Plage.Replace What:=CH(x), Replacement:=Rpl(x), LookAt:=xlPart, MatchCase:=True
    Next x
    End Sub
     
    'Teste
    mise_en_forme(Classeur1.Feuil1.Range("A1:A100"))
    (Code non testé)

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. [XL-2010] Remplacer virgule par point
    Par stsym dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/04/2020, 19h31
  2. [Python 3.X] Remplacer virgule par point dans un fichier csv
    Par marco056 dans le forum Général Python
    Réponses: 2
    Dernier message: 21/11/2014, 18h20
  3. Remplacer virgule par point
    Par Stepsbysteps dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/05/2013, 13h40
  4. remplacer virgule par un point
    Par kensem dans le forum C#
    Réponses: 2
    Dernier message: 06/01/2011, 14h58
  5. remplacer virgule par un point
    Par maysa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/10/2007, 12h19

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