Conversion texte en nombres (macro)

Fermé
Ysabe_l
Messages postés
11451
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
22 mai 2022
- 6 sept. 2016 à 14:07
Mike-31
Messages postés
17950
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
23 mai 2022
- 6 sept. 2016 à 14:46
Bonjour,

Je rencontre un soucis avec une macro que j'essaye de créer.

Je récupère des données brutes et je dois les traiter. Parmi ces données il y a une colonne de nombres décimaux dont le séparateur est un point et qu'Excel considère donc comme du texte. J'ai besoin qu'il les considère comme des nombres pour pouvoir ensuite faire une mise en forme conditionnelle selon la valeur de la case.

Si je sélectionne ma colonne et que je vais dans remplacer et que je remplace le point par une virgule, excel les transforme automatiquement en nombres. C'est parfait c'est ce que je veux.

SAUF QUE si je fais exactement la même chose par une macro, il remplace bien les points par des virgules mais continue à considérer que c'est du texte, il m'affiche alors une erreur sur chacun et me permet de corriger l'erreur en convertissant en nombre. Mais du coup il faut les faire un par un et une macro n'est plus possible. J'ai essayé de lui dire que c'était un format "standard" ou un format "nombre" mais il s'en fiche il continue à considérer que c'est du texte tout en me signalant que quand même ça ressemble bien à un nombre ce truc.

Je cherche donc une solution pour lui faire "comprendre" que c'est des nombres mais en utilisant une macro.

J'utilise Excel 2007.

Je créé la macro en passant par l'enregistrement de macro et non en écrivant les codes. Et ça me donne ça comme code (je ne sais pas si ça peut être utile, mais mieux vaut en dire trop) :

Sub nombres()
'
' nombres Macro
'

'
    Columns("D:D").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub


Merci d'avance.

A voir également:

5 réponses

Fahora
Messages postés
811
Date d'inscription
jeudi 24 septembre 2015
Statut
Membre
Dernière intervention
6 novembre 2020
66
Modifié par Fahora le 6/09/2016 à 14:26
Bonjour ,

Essayes ça :

 Range("D:D").Select
    Selection.TextToColumns Destination:=Range("D2"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), DecimalSeparator:=".", TrailingMinusNumbers:=True


Fais à partir de l'enregistreur de macro , puis Données > Convertir > Avancés , Séparateur de décimales : "."
Cordialement,
Nos seules limites sont celles que nous nous imposons nous-même.
La politesse et un merci ne tuent pas. Il existe un bouton pour "Résolu" pour confirmer que     votre problème n'en est plus un. Fahora
0
Ysabe_l
Messages postés
11451
Date d'inscription
vendredi 12 avril 2013
Statut
Contributeur
Dernière intervention
22 mai 2022
271
6 sept. 2016 à 14:34
Bonjour,

Ca me donne un message d'erreur pour le moment. Mais c'est toujours une piste, je vais creuser ça !

Merci
0