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

Excel Discussion :

Questions pour convertir des nombres stockés en format texte [Toutes versions]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Questions pour convertir des nombres stockés en format texte
    Bonjour à tous,

    J’ai un fichier avec des numéros stockés en format texte. Il est possible de les convertir manuellement mais mon fichier Excel contient énormément de données (de la plage A jusqu’à la plage NI) et il n’est donc pas faisable de les convertir un par un. Il y a des nombres entiers et décimaux.
    Savez-vous comment les convertir via un code VBA s’il vous plaît ?

    Merci d’avance.

  2. #2
    Membre actif

    Homme Profil pro
    Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Inscrit en
    Avril 2014
    Messages
    285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Elève au Lycée ayant pour ambition Ingenieur Informaticien
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 285
    Points : 268
    Points
    268
    Billets dans le blog
    1
    Par défaut
    Bonjour Antoisse

    J'ai pas bien compris ta question

    tu souhaiterais convertir en quel format?
    Cordialement,

    "C'est une requête SQL qui entre dans un bar, et le serveur répond : « Il n'y a plus de tables ! ».
    Refusée au bar, la requête SQL veut aller en boîte et le videur lui dit : « Non, dehors ! C'est select ici. »

    "

    Sankara Adama
    A+

  3. #3
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    une proposition

    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 Conversion()
    Dim Plage As Range
    Dim Cell As Range
    Dim Derlig As Long
     
    Derlig = Sheets("Feuil2").UsedRange.Rows.Count
    Set Plage = Range("A" & Derlig & ":NI" & Derlig)
     
    For Each Cell In Plage.Cells
        If IsNumeric(Cell.Value) And Cell <> "" Then
            Cell.Value = Application.WorksheetFunction.Value(Cell.Value)
            Cell.NumberFormat = "0"  'adapter le format en fonction du type de nombre dans tes cellules
        End If
    Next Cell
     
    Set Plage = Nothing
     
    End Sub

  4. #4
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Points : 11
    Points
    11
    Par défaut toutes versions
    Merci beaucoup pour vos réponses et pour l'aide. Je vais essayer d'appliquer le code qui m'a été proposé. Je vous en remercie !

    Concernant ma question qui n'a pas paru très claire, il s'agit de convertir des données sous format texte en format numérique afin de pouvoir effectuer des calculs.
    Voici un exemple en pièce jointe : dans la colonne A, les données sont stockées en format texte et en C, elles sont converties en format numérique manuellement.
    Je souhaiterais avoir un code VBA pour faire cette conversion car j'ai énormément de données à convertir (passage du format texte en format numérique pour effectuer des calculs) tout en gardant le même emplacement dans le tableau Excel (la donnée convertie doit rester dans la même cellule).

    Merci beaucoup !
    Fichiers attachés Fichiers attachés

  5. #5
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par antoisse3 Voir le message
    Merci beaucoup pour vos réponses et pour l'aide. Je vais essayer d'appliquer le code qui m'a été proposé. Je vous en remercie !

    Concernant ma question qui n'a pas paru très claire, il s'agit de convertir des données sous format texte en format numérique afin de pouvoir effectuer des calculs.

    Merci beaucoup !
    Dans ton aide de VBA:

    Csng, Cdbl, Cint, Clng, Ccur (méthodes orthodoxes)


    Ou bedon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").value = Range("A1").value + 0
    Ou bedon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1").value = Range("A1").value * 1
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 419
    Points
    1 419
    Par défaut
    Bonsoir,

    As-tu vraiment besoin d'une macro?
    Excel sait très bien le faire:
    Nom : ConvertirEnNombre.png
Affichages : 234
Taille : 13,4 Ko

  7. #7
    Membre à l'essai
    Homme Profil pro
    étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Points : 11
    Points
    11
    Par défaut merci !
    Bonsoir à tous,

    Je vous remercie de votre aide. Grâce à vous, j'ai trouvé une solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub convertir()
     
    Dim plage As Range, cel As Range
    Set plage = Range([A2:A400], [NI2:NI400].End(xlUp))
    For Each cel In plage
    If IsNumeric(cel.Value) And cel.Value <> "" Then
        cel = cel * 1
        End If
      Next cel
    Set plage = Nothing
    End Sub

    Cependant, mon macro fonctionne feuille par feuille. Est-il possible de faire fonctionner le macro pour toutes les feuilles du classeur s'il vous plaît ?
    Merci !

    Oui Promethee25, merci. Excel sait le faire mais j'ai plusieurs pages de données.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    667
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 667
    Points : 1 419
    Points
    1 419
    Par défaut
    Il n'y a pas grand-chose à modifier dans ton code; juste rajouter une boucle sur les feuilles:

    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
    Sub convertir()
     
    Dim plage As Range, cel As Range
    Dim sh As Worksheet
     
    For Each sh In ThisWorkbook.Worksheets
        Set plage = sh.Range(sh.[A2:A400], sh.[NI2:NI400].End(xlUp))
        For Each cel In plage
        If IsNumeric(cel.Value) And cel.Value <> "" Then
            cel = cel * 1
            End If
          Next cel
    Next sh
    Set plage = Nothing
    End Sub

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

Discussions similaires

  1. Conversion de Nombre stockés en format texte.
    Par tytyxam dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/09/2011, 15h52
  2. [XL-2007] Nombre stocké sous format texte
    Par locosr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/05/2011, 22h17
  3. [XL-2007] Aide pour convertir des heures en nombres
    Par Micky74 dans le forum Excel
    Réponses: 2
    Dernier message: 06/05/2010, 06h47
  4. Nombre stocké sous format texte
    Par oliver75 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 22/07/2009, 13h40
  5. Select sur des nombre décimaux de format 0.*
    Par CanardJM dans le forum Langage SQL
    Réponses: 8
    Dernier message: 18/08/2005, 16h04

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