Conversion texte en nombres (macro)
Ysabe_l
Messages postés
12714
Date d'inscription
Statut
Contributeur
Dernière intervention
-
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
Mike-31 Messages postés 18405 Date d'inscription Statut Contributeur Dernière intervention -
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) :
Merci d'avance.
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:
- Vba convertir texte en nombre
- Convertir audio en texte word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Convertir epub en kindle - Guide
- Excel cellule couleur si condition texte - Guide
- Convertir youtube en mp3 avec audacity - Guide
5 réponses
Bonjour ,
Essayes ça :
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
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
Ca me donne un message d'erreur pour le moment. Mais c'est toujours une piste, je vais creuser ça !
Merci