Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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 !
@Staple1600 Non, C2 contient "0,321", format standard en effet. @mapomme Oui, une fonction perso ce serait très facile à écrire, mais je n'en vois pas trop l'intérêt. Une formule qui multiplie par 1 convertit déjà le texte en nombre. Pierrejean l'a fait mais moi je n'aime pas écrire des codes qui parcourent une à une les cellules d'une plage.
Debug.Print Range("A1:T14").SpecialCells(xlCellTypeConstants, 2).Address(0, 0)
Renvoie bien entre autre C2, non ?
(qui pourtant affiche format Standard)
D'où mon incompréhension
@Dranreb
Je ne comprends pas ce que tu veux dire
J'ai écris 0,321* juste pour indiquer que C2 semble contenir un nombre (si on regarde le format qui est sur Standard)
Par contre F5 le considère comme du texte.
Je ne comprends pas pourquoi.
Parce que la valeur de la cellule est effectivement un texte et non un nombre. Qu'est-ce que le format d'affichage de la cellule vient faire la dedans ? Il est presque complètement indépendant du type de donnée de sa valeur, sauf pour faire la distinction entre les dates, nombres et devises qui semblent bien en réalité tous stockés en Double. C'est une chose qu'on m'a fait comprendre assez récemment, et c'est en relation avec la propriété Value2, toujours expliquée de façon obscure par Microsoft.
Bien que le sujet soit ancien et marqué résolu, je me permets d'y ajouter ma contribution afin d'éviter à tout le monde de perdre du temps inutilement.
Les boucles sont à proscrire dans la plupart des cas car beaucoup trop longues à s'exécuter (testez avec 1 million de lignes sur 5 colonnes et vous comprendrez)
les traitements par plages sont tellement plus rapides que les boucles qu'on ne peut pas les comparer
Lorsqu'on place une valeur dans la propriété Formula d'une plage, Excel en détermine automatiquement la nature.
La méthode la plus rapide et efficace consiste donc en :
VB:
Public Sub Reconvertir(ByVal Feuille as WorkSheet, _
ByVal Plage as Range)
Dim shtFeuille as WorkSheet
Dim rngPlage as Range
set shtFeuille = Iif(Not Feuille is Nothing, Feuille, ActiveWorkbook.ActiveSheet)
Set rngPlage = Iif(Not Plage is Nothing, Plage, shtFeuille.UsedRange)
With rngPlage
.Formula = .Value
End With
End Sub
En espérant que ça pourra aider certains à progresser
- 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