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 :

Convertir en nombre (VBA) [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Chercheuse
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheuse
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Convertir en nombre (VBA)
    Bonjour à tous,

    J'ai un fichier Excel avec une soixantaine de feuillles dedans. Dans chaque feuille il y a des nombres. Je dois faire des calculs avec ces nombres (notamment des sommes). Malheureusement pour tous les nombres il y a inscrit : "Nombre stocké sous forme de texte". Je n'arrive pas à les convertir en nombre tous à la fois, dans tous les onglets. Voici la macro que j'ai faite, mais elle marche pas. Pourquoi ?

    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
    Sub ST03b_TexteEnNombre1()
     
       'On éteint calculation and screenupdating pour accélérer la macro
        With Application
        .Calculation = xlCalculationManual
        .ScreenUpdating = False
        End With
     
     
        'Definition des variables
     
           Dim ws As Worksheet
     
        'Convertir en nombre les "Nombre stocké sous forme de texte" dans les feuilles Excel
     
         For Each ws In ActiveWorkbook.Worksheets
     
         ws.Range("F10:F145").TextToColumns ws.Range("F10:F145")
     
         Next
     
     
    End Sub

  2. #2
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Je ne sais pas où tu as vu que la méthode TextToColumns pouvait convertir un texte en nombre... Sélectionne le et tape sur F1

    Lorsque tu dis
    Malheureusement pour tous les nombres il y a inscrit : "Nombre stocké sous forme de texte"
    tu entends par là que :
    • tu veux transformer "cent quarante deux" en 142 ?
    • ou tu veux transformer "Nombre stocké 142" en 142 ?

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Chercheuse
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheuse
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Oui je veux transformer
    "Nombre stocké 142" en 142
    .

    Ici j'ai fait le test sur une colonne. Et ça marche, mais uniquement sur une feuille pas sur toutes mes feuilles !
    Merci

  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each ws In ActiveWorkbook.Worksheets
        ws.Range("F10:F145").Replace What:="Nombre stocké ", Replacement:="", LookAt:=xlPart
    Next

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Chercheuse
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheuse
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci Fringe, mais j'ai due mal m'exprimer. Ce que tu me proposes ne marche pas.

    Mon problème se rapproche de celui décrit ici :
    http://www.developpez.net/forums/d10...string-single/

    D'ailleurs c'est là que j'ai vu la fonction "TextToColums" qui fonctionne mais uniquement sur une colonne et sur 1 feuille.

    Excel m'alerte d'un problème avec le format de mes nombres (lorsque je clique sur le petit trait vert en haut à gauche d'une de mes cellules avec un nombre) : il me dit : "nombre stocké sous la forme de texte" et me propose de les convertir en nombre un par un !!!!!

    Or moi j'ai des nombres comme ça, sur 8 colonnes et 365 lignes dans 65 feuilles ! Voilà pourquoi j'essaye de faire une macro pour tous les convertir et enfin pouvoir réaliser des calculs.

  6. #6
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Fais un essai avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test()
        For Each ws In ActiveWorkbook.Worksheets
            With ws.Range("F10:F145")
                .NumberFormat = "0"
                .Value = .Value
            End With
        Next
    End Sub
    Cordialement.

  7. #7
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Sorry, j'avais mal compris en effet
    Quelles sont les colonnes et les lignes ? Parce que dans ta boucle tu ne traites qu'une seule colonne au lieu de 8 (la colonne F) et 135 lignes au lieu de 365 (de la ligne 10 à 145) ?

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Chercheuse
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheuse
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Super merci "gFZT82" ça marche parfaitement ! Génial

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

Discussions similaires

  1. convertir un nombre en chaine de caractere
    Par c_moi_c_moi dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 11h24
  2. [VB.Net] Convertir un nombre au format double en date
    Par Immobilis dans le forum ASP.NET
    Réponses: 6
    Dernier message: 14/11/2005, 15h34
  3. Convertir un nombre d'heure format HH:MM
    Par jerome_sinclair dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/11/2005, 21h51
  4. Comment convertir un nombre de jours décimal en date
    Par Soutou dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/11/2005, 00h57
  5. Réponses: 4
    Dernier message: 06/06/2004, 12h07

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