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 :

macro vba convertir des nombres en nombres (formaté texte) par colonne variable


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Mai 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 64
    Points : 31
    Points
    31
    Par défaut macro vba convertir des nombres en nombres (formaté texte) par colonne variable
    Bonjour

    Ci-joint le fichier tel que je le retrouve après un export
    Vous constaterez que les colonnes D et E sont bien en format nombre mais en fait certaines cellules sont en texte (aligné a gauche) donc impossible de faire des calculs par lignes.
    Je cherche une macro qui, lorsque je sélectionne une colonne ou la plage de données dans cette colonne, et que j'appuie ensuite sur mon bouton macro, elle me remette les cellule en nombres. Quitte a refaire la manip colonne par colonne car lors d'un autre export j'ai le même problème mais pas forcement dans les même colonnes.
    En plus clair cette macro n'agit que sur ma sélection manuelle...
    j'ai bien trouvé un code qui fait bien cette action fichier Word joint, mais il faut spécifier les noms de colonne et je ne sais pas comment la modifier.
    Merci de venir à mon aide
    Fichiers attachés Fichiers attachés

  2. #2
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Je n'ouvre et n'ouvrirai jamais de classeur tiers.
    Il me faut donc essayer de t'aider "à l'aveuglette"

    Je devine (mon petit doigt est en général efficace) que ces données ont été importées (quelle origine ? Je n'en sais rien), qu'elles contiennent comme séparateur de milliers ce qui parait être un espace, mais n'en est pas du tout un ... Moyennant quoi, aucun formatage de cellule n'y remédierait !

    Au hasard donc, pour le cas où j'aurais bien deviné (aidé sans doute par la fréquence de ces "cas" de figure) :
    Remplace tous les caractères de code 160 (espace insécable) de la colonne concernée par le caractère 32 (espace) et tout devrait aller pour le mieux dans le meilleur des mondes.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Mai 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 64
    Points : 31
    Points
    31
    Par défaut
    alors oui bien deviné, c'est un problème sur les nombres 3 211 et non les autres

    par contre, je ne comprends pas trop la solution
    remplace.... ou je trouve ces code ?

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Dur de t'aider à l'aveuglette (sans ouvrir -pas question- ton classeur) et sans que tu n'aies les connaissances de base nécessaires

    Je vais alors être obligé (par prudence) de suggérer la totale, à savoir :
    si tu dois par exemple agir sur les données de la colonne B :
    code macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim c As Range, toto As Integer
      For Each c In Range("B:B").SpecialCells(xlCellTypeConstants) ' car forcément des constantes, puisque importées
      toto = 0
      On Error Resume Next ' juste pour le cas où certaines données ne seraient pas cohérentes
        toto = Asc(Mid(c.Text, 2, 1))
        If toto = 160 Then
          c.Value = Val(Replace(c.Text, Chr(160), " "))
        End If
        On Error GoTo 0
      Next
    Comme tu le vois, "aveuglette" = précautions tous azimuts (et lourdeurs induites) forcées
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Mai 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 64
    Points : 31
    Points
    31
    Par défaut
    Un grand merci le code est bon est fonctionne quand je met la bonne lettre de colonne.....
    Mais je voudrais ne pas avoir a dire si c'est B ou D ou F je voudrais la même chose juste en sélectionnant ma colonne et en lançant la macro
    Est-ce possible ?

  6. #6
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    je voudrais la même chose juste en sélectionnant ma colonne et en lançant la macro
    Est-ce possible ?
    ben oui.

    1) tu modifies ainsi la seule deuxième ligne de la macro ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    '...
      For Each c In Selection.SpecialCells(xlCellTypeConstants) ' car forcément des constantes, puisque importées
    ' .....
    2) tu sélectionnes la colonne entière puis lances la macro
    Pardi.
    N'oublie s'il te plait pas de libérer maintenant cette discussion en la marquant résolue.
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Enseignant
    Inscrit en
    Mai 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2013
    Messages : 64
    Points : 31
    Points
    31
    Par défaut
    Vraiment merci

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

Discussions similaires

  1. Convertir des chiffres en lettres
    Par azde7015 dans le forum VBA Access
    Réponses: 16
    Dernier message: 19/05/2019, 15h16
  2. [XL-2010] convertir date et nombre stockés en format texte
    Par red1974 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/05/2016, 18h27
  3. [Toutes versions] Questions pour convertir des nombres stockés en format texte
    Par antoisse3 dans le forum Excel
    Réponses: 7
    Dernier message: 20/04/2015, 09h55
  4. [XL-2007] Aide pour convertir des heures en nombres
    Par Micky74 dans le forum Excel
    Réponses: 2
    Dernier message: 06/05/2010, 06h47
  5. Réponses: 27
    Dernier message: 13/01/2006, 23h46

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