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

XL 2016 RÉSOLU Convertir plage texte en nombre

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Bonjour MASSJIPE

En appliquant cette macro

Code:
Sub nombres()
For Each cel In Range("A1:T15")
 If IsNumeric(cel.Value) And cel.Value <> "" Then
    cel.NumberFormat = "0.000;[Red]0.000"
    cel.Value = cel.Value * 1
 End If
Next
End Sub
 
Bonsoir le fil, le forum, MASSJIPE, pierrejean

Pas sur d'avoir tout compris
(pas vérifier si d'éventuels effets de bord)
Une autre macro (sans boucle)
VB:
Sub Macro1()
Range("A1:T15").SpecialCells(xlCellTypeConstants).NumberFormat = "#,##0.000;[Red]#,##0.000"
End Sub

EDITION: Bonsoir Dranreb
 
Dernière édition:
Bonsoir.
On peut aussi faire comme ça :
VB:
Sub ConvertirEnNombres()
   Dim T(), L&, C&, V As Double
   On Error Resume Next
   With ActiveSheet.UsedRange
      T = .Value
      For L = 1 To UBound(T, 1): For C = 1 To UBound(T, 2)
         If VarType(T(L, C)) = vbString Then
            Err.Clear: V = T(L, C): If Err = 0 Then T(L, C) = V
            End If: Next C, L
      .Value = T: End With
   End Sub
 
Bonsoir à tous,

Je m'y mets aussi:
VB:
Sub EnNombre()
Dim xcell As Range
  Application.ScreenUpdating = False
  For Each xcell In Range("a1:t15")
    If xcell.Errors.Item(xlNumberAsText).Value = True Then xcell = 0 + xcell
  Next xcell
End Sub

Edit : le bon fichier
 

Pièces jointes

Dernière édition:
Bonsoir @Staple1600,
Re, Bonsoir mapomme

J'ai une question pour les boucleurs 😀

Qu'est-ce que ma "one-liner" ne fait pas que font vos boucles ? 😉
(cf le message#3)

Tu ne sais donc pas la boucler! 🙂😉😀😛 (servie sur un plateau, je ne pouvais pas la rater celle-la)

Je n'ai rien contre, néanmoins, à vue de nez, ta ligne de code modifie le format de la cellule. Et que se passe-t-il si le SpecialCells ne renvoie rien ?
 
Dernière édition:
Re

@mapomme
J'ai une autre question pour boucler la boucle 😉
Quand on ouvre la PJ du message#1, les cellules contenant des nombres sont déjà considérés comme des nombres, non ?
(Je n'ai pas trouvé de cellules avec des nombres au format Texte)

PS: Pour ma ligne, je repris le format qu'on voyait dans le code de pierre-jean
(et il me semble que de mémoire, certaines des cellules de la PJ initiale avaient déjà ce format, non ?)
 
Re,

Quand on ouvre la PJ du message#1, les cellules contenant des nombres sont déjà considérés comme des nombres, non ?

Je pense que c'est justement ce que veut voir disparaitre MASSJIPE: des nombres reconnus comme tels mais stockés sous forme de texte [souvent le cas quand on importe (ou copie/colle) des donnée issues d'un logiciel tiers]. C'est pourquoi j'utilise (pour la première fois) l'objet xcell.Errors avec le paramètre "xlNumberAsText".

Mais ta ligne doit fonctionner sauf si le SpecialCells ne renvoie rien.
 
Re

J'en rajoute une autre de macro 😉
VB:
Sub TwoLines()
ActiveSheet.UsedRange.NumberFormat = "General"
ActiveSheet.UsedRange.Value = ActiveSheet.UsedRange.Value
End Sub

Maintenant la question est: Est-ce toutes les macros proposées dans ce fil font ce que souhaitent le demandeur ?
😉
(et accessoirement font-elles toutes la même chose...ou pas ?)
 
@Staple1600 Dans le fichier d'origine j'ai trouvé des nombres enregistrés sous forme de texte.
Ma macro les convertit en nombres sans changer (sauf accident improbable trop compliqué à expliquer) le format de cellule, et il me semble que c'était ce que voulait le demandeur. Mais elle convertit aussi les formules en leurs valeurs, ça c'est peut être gênant.
 
Re

@Dranreb
Exact
F5/Constantes/Texte renvoie:
B1,A1:A2,C1:C2,B4,E4:I5,N4:Q5,A4:A5,C4:C5,B7,E7:L8,N7:S8,A7:A8,C7:C8,B10,A10:A11,C10:C11,B13,A13:A14,C13:C14

Mais par exemple, clic-droit sur C2* => Format de cellule affiche Standard ???
(qui contient: 0,321)

EDITION: mapomme
A cette heure, ma vue baisse et mes neurones déclinent 😉
 
Dernière édition:
Bonjour @Dranreb 🙂,

Mais elle convertit aussi les formules en leurs valeurs, ça c'est peut être gênant.

Peut-on avoir une formule qui renvoie un nombre stocké sous format texte ? Je ne vois pas comment mais pourquoi pas. Il me semble qu'une formule renvoie soit du texte soit un nombre. Si le texte renvoyé est la représentation d'un nombre, on n'a pas le message "texte stocké sous forme texte", c'est un texte tout simplement. Si j'ai raison, il ne faudrait traiter que les cellules sans formule dans ta macro.
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
99
Réponses
5
Affichages
222
Réponses
12
Affichages
165
Réponses
11
Affichages
576
Réponses
5
Affichages
142
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…