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 :

Texte en nombre sans avoir la cellule avec l'angle vert [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Texte en nombre sans avoir la cellule avec l'angle vert
    Bonjour,

    Pouvez-vous m'aider sur une macro, je débute en VBA, j'ai pas mal chercher et pas trouvé.

    Dans le fichier attaché, je veux convertir des cellules contenant des chiffres en format texte au format numérique. Pas de problème tant qu'il n'y a pas de virgule.

    J'ai dans un 1er temps sélectionné ma colonne, remplacer les "." par des "," et donner a ma sélection le format monétaire.

    Sauf que tout les cellules qui avaient un point (que j'ai remplacé par une virgule) reste du coté gauche de la cellule avec l'angle haute/gauche en vert.

    Si je clique dessus, j'ai la boite de dialogue me demandant si je convertir en nombre.

    Ma question : comment faire en vba pour automatiquement avoir le format nombre ?

    Mes lignes de code :

    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
    20
    21
    22
    Sub mise_en_forme()
    '
    ' Mise en forme du fichier Excel "Etat licences 2013-2014"
     
    '
        'Remplace sur la colonne "Prix Club" la valeur "Inconnu" par la valeur "170"
            Columns("G:G").Select
            Selection.Replace What:="Inconnu", Replacement:="170"
     
        'Remplace sur la colonne "Montant Réglement" le "." par une ","
            Columns("H:H").Select
            Selection.Replace What:=".", Replacement:=","
     
        'Format les colonnes "Prix Club" et "Montant Réglement" en €
            Columns("G:H").Select
            Selection.Style = "Currency"
     
        'Position du curseur en A1
            Range("A1").Select
     
     
    End Sub
    Merci de votre aide


    Eddie
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 922
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 922
    Points : 28 908
    Points
    28 908
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Es-tu certain que le séparateur de millier est une virgule ?
    Si oui que se passe-t-il si tu multiplies la cellule en question par 1 ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    Peut être pas le plus simple mais ça a le mérite de fonctionner:
    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
    20
    21
    22
    23
    24
    Option Explicit
     
    Public Sub mise_en_forme()
     
    'Mise en forme du fichier Excel "Etat licences 2013-2014"
     
      Dim rngC As Range
     
        'Remplace sur la colonne "Prix Club" la valeur "Inconnu" par la valeur "170"
            Columns("G:G").Replace What:="Inconnu", Replacement:="170"
     
        'Remplace sur la colonne "Montant Réglement" le "." par une ","
            Columns("H:H").Replace What:=".", Replacement:=","
     
        'Format les colonnes "Prix Club" et "Montant Réglement" en €
            For Each rngC In Range("G3:H" & Range("A" & Rows.Count).End(xlUp).Row)
              rngC = rngC * 1
            Next rngC
            Columns("G:H").NumberFormat = "#,##0.00 €"
     
        'Position du curseur en A1
            Range("A1").Select
     
    End Sub

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 6
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup, ça marche.

    Maintenant je vais analyser et comprendre ce que tu as fait.

    Grand merci encore


    Eddie

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai simplement multiplié par 1 comme Philippe Tulliez le préconisait. Ca permet de transformer le format texte en format numérique.

    Sinon tu remarqueras que j'ai enlevé tout les '.Select'. En effet ils sont inutiles et peuvent rendre la macro instable (sur de grosses macros).

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

Discussions similaires

  1. [XL-2010] Somme de cellules avec nombre et texte
    Par bolide7 dans le forum Excel
    Réponses: 5
    Dernier message: 17/03/2015, 15h36
  2. Réponses: 1
    Dernier message: 11/03/2015, 09h44
  3. Réponses: 4
    Dernier message: 02/06/2007, 12h35
  4. Réponses: 2
    Dernier message: 13/02/2007, 17h40
  5. Réponses: 9
    Dernier message: 13/09/2006, 14h19

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