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 :

[VBA-E] Macro pour conversion donnée caractère en numérique sous excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Par défaut [VBA-E] Macro pour conversion donnée caractère en numérique sous excel
    Bonjour,

    Je travaille sur une base donnée dont les 10 premières colonnes sont du texte et les 150 suivantes sont numériques. Seulement voila, tous les nombres de ces dernières colonnes, qui n'ont pas de chiffres après la virgule sont reconnus en texte et possède un ' au début.
    Si je sélection toutes ces données et que je fais Format>Nombre, ca ne change rien a cause des petits '.
    Il faudrait en fait que je fasse Sélection d'une colonne>Données>Convertir. Sauf que je devrai répéter cette opération 16 000 fois environ. Autrement dit c'est l'horreur.
    Comme c'est une fonction que je dois répéter, j'ai pensé que peut être une macro pourrai le faire automatiquement. Mais je ne m'y connais absolument pas en VBA. Donc après un long moment de galère a chercher comment faire, je vous apelle au secour !

    Donc voila : Connaitriez vous une petite macro qui me permette de répéter tout seul cette manipulation ?

    Merci 1000 fois par avance !!!!!! :-)
    Elendis.

  2. #2
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    Hello, bienvenue sur le forum,

    En utilisant l'enregistreur de macro, j'obtiens cette fonction textocolumns, je ne la connais pas trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Columns("E:E").Select
        Selection.TextToColumns Destination:=Range("E1"), DataType:=xlFixedWidth, _
            FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
    Essaie déjà sur une colonne pour voir si ça fait ce que tu veux, ensuite on verra

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Par défaut
    Merci beaucoup déja.
    Mais tu aurais une idée de comment faire une boucle disant de répéter cette macro de la colonne S à la colonne EZ ?

  4. #4
    Membre éprouvé Avatar de cwain
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    218
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 218
    Par défaut
    avec qqch comme ça, ça devrait aller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = Range("S1").Column To Range("EZ1").Column
        Columns(i).Select
        'le code
    Next
    Tu dis

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Par défaut
    Du coup j'ai écrit ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For I = 19 To 218
     
        Columns(I).Select
        Selection.TextToColumns Destination:=Cells(1,I), DataType:=xlFixedWidth,
            FieldInfo:=Array(0, 1), TrailingMinusNumbers:=True
     
        Next I
    et je ne comprend pas pourquoi ca ne marche pas. J'ai un message d'erreur..........

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Par défaut
    désolée j'avais pas vue ta réponse avant de poster ma derniere réponse

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 5
    Par défaut
    en fait le probleme est le terme range, je dois le remplacer par cells pour y mettre la variable i et du coup le programme ne marche pas.
    Mais merci quand meme pour tout :-)

Discussions similaires

  1. [VBA-PP] macro pour insérer des images dans PowerPoint
    Par mashpro dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 01/08/2006, 22h56
  2. [VBA-E] Macro Récupération de donnée afin d'en faire un rapport.
    Par strifer dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 25/07/2006, 15h37
  3. [VBA-E] Macro pour tous fichiers Excel ?
    Par belfaigore dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 05/07/2006, 18h25
  4. [VBA-E] Macro pour copier cellules
    Par jfamiens dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 07/06/2006, 20h02
  5. [VBA-E] Macro pour convertir un fichier texte en excel
    Par Nicolas67 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/05/2006, 14h47

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