Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Conversion format nombre en texte

antonmuller

XLDnaute Nouveau
Bonjour,
Euh...j'ai essayé avec la fonction "recherche" sur ce forum mais sans vraiment trouver...voilà :j'essaie de créer une macro simple qui me permettrait de convertir une plage du format nombre au format texte dans Excel (ce que l'on fait avec la fonction CTXT)
Je sais que la macro qui permet le passage du texte au nombre est la suivante:

Sub Enter_Values()
For Each xCell In Selection
xCell.Value = xCell.Value
Next xCell
End Sub

Mais visiblement je n'obtiens pas le résultat inverse si change xCell.Value en x.Cell.Text...pouvez-vous m'aider SVP - merci beaucoup! (inutile de vous dire que je ne suis pas un pro de VBA)
 

Pierrot93

XLDnaute Barbatruc
Re : Conversion format nombre en texte

Bonjour Antonmuller

essaye peut être le code ci dessous si j'ai bien compris :

Code:
For Each xCell In Selection
xCell.NumberFormat = "@"
Next xCell
End Sub

bonne journée
@+
 

antonmuller

XLDnaute Nouveau
Re : Conversion format nombre en texte

Pierrot93 à dit:
Bonjour Antonmuller

essaye peut être le code ci dessous si j'ai bien compris :

Code:
For Each xCell In Selection
xCell.NumberFormat = "@"
Next xCell
End Sub

bonne journée
@+
Merci beaucoup de la réponse Pierrot93 mais hélas on reste en "number format" c'est à dire le chiffre est toujours considéré comme un nombre avec ce que cela implique; typiquement pour faire des tris dans des nomenclatures où 10, 101, 1011, etc doivent apparaître avant 20, 201, 2011, etc - il faut la conversion en texte pour cela
Cordialement,
Anton Muller
 

lacorse33

XLDnaute Occasionnel
Re : Conversion format nombre en texte

Bonjour antomuller et Pierrot93,

Je te propose ceci :

For Each xCell In Selection
xCell.NumberFormat = "@"
xCell.Value = Format(xCell.Value, "@")
Next xCell

J'ai fait un essai et le tri est comme demandé.
 

antonmuller

XLDnaute Nouveau
Re : Conversion format nombre en texte

lacorse33 à dit:
Bonjour antomuller et Pierrot93,

Je te propose ceci :

For Each xCell In Selection
xCell.NumberFormat = "@"
xCell.Value = Format(xCell.Value, "@")
Next xCell

J'ai fait un essai et le tri est comme demandé.
YESSSS! Génial ça marche, merci beaucoup lacorse33!
Cordialement,
Anton Muller
 

Pierrot93

XLDnaute Barbatruc
Re : Conversion format nombre en texte

Re Anton Muller, Lacorse

Oui ca marche avec le code de la corse et pas avec le mien, bizarre car quand on regarde le format des cellules, il est identique, "Texte dans les 2 cas" !!!

@+
 

mjo

XLDnaute Impliqué
Re : Conversion format nombre en texte

Bonjour,

J'ai été confronté dernièrement avec un problème similaire.

Une première solution était de créer une colonne supplémentaire avec la formule :
=TEXTE(A1;"@")

La solution retenue a été de sélectionner la plage, puis menu Données - Convertir - 2 x Suivant - cocher Texte - Terminer

mjo
 

Pierrot93

XLDnaute Barbatruc
Re : Conversion format nombre en texte

Re Anton Muller, Lacorse, Bonjour Mjo

@Mjo
exact, après conversion de ma série de données c'est trié dans l'ordre voulu. Ah Excel et les formats....ca échappe des fois à la logique.

bonne journée.
@+
 

antonmuller

XLDnaute Nouveau
Re : Conversion format nombre en texte

Hello mjo et merci d'intervenir sur cette question posée par moi-même; je veux juste rappeler que (à tout le moins dans ma version d'Excel 2002 -SP3) Données - Convertir ne peut fonctionner que sur une colonne et non sur une plage faite de plusieurs colonnes...
Cordialement,
Anton Muller
 

mjo

XLDnaute Impliqué
Re : Conversion format nombre en texte

Re,

Exact, aussi sur XL2003, je ne le savais pas.

Donc, convertir une colonne (ou même une cellule), copier et coller le format sur le restant de la plage (icone avec la petite brosse dans la barre d'outils).

mjo
 

Discussions similaires

Réponses
5
Affichages
372
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…